iyuichiの私的開発ログ

渋谷で働くWebエンジニアのログ. Java, Android, iOS, Docker, GCP, AWS, ゲーム開発

rake db:migrate ではまった

コントローラ、ビューの作成までを、script/generate で行ってきました。
そこで、今度はDBを使ったアプリを動かすところまでやってみようと思う。

sqlite3の場合

sqlite3のアダプタは前回入れました。

ではscaffold を実行します。

$ ruby script/generate scaffold person name:string age:integer
      exists  app/models/
      exists  app/controllers/
      exists  app/helpers/
      create  app/views/people
      exists  app/views/layouts/
      exists  test/functional/
      exists  test/unit/
      exists  test/unit/helpers/
      exists  public/stylesheets/
      create  app/views/people/index.html.erb
      create  app/views/people/show.html.erb
      create  app/views/people/new.html.erb
      create  app/views/people/edit.html.erb
      create  app/views/layouts/people.html.erb
      create  public/stylesheets/scaffold.css
      create  app/controllers/people_controller.rb
      create  test/functional/people_controller_test.rb
      create  app/helpers/people_helper.rb
      create  test/unit/helpers/people_helper_test.rb
       route  map.resources :people
  dependency  model
      exists    app/models/
      exists    test/unit/
      exists    test/fixtures/
      create    app/models/person.rb
      create    test/unit/person_test.rb
      create    test/fixtures/people.yml
      create    db/migrate
      create    db/migrate/20100107062956_create_people.rb

model, control, view ができあがります。
db/migrate ディレクトリの中にマイグレーションファイルもできています。
personの複数形でテーブルはpeopleになると。

DBマイグレーション

$ rake db:migrate

ここで以下のようなエラーです。

syntax error, unexpected '\n', expecting tCOLON2 or '[' or '.'

sqlite3-ruby の問題らしく

$ gem update sqlite3-ruby

したら動くようになりました。
動いたのはこんな感じの環境です。

  1. ruby 1.9.1p243 (2009-07-16 revision 24175)
  2. gem 1.3.5
  3. Rails 2.3.5
  4. sqlite3-ruby-1.2.5-x86-mingw32