如何将表添加到sqlite3数据库

时间:2014-03-19 08:48:59

标签: sql ruby-on-rails ruby sqlite

如何将数据库添加到SQLite3数据库? 我总是得到这个错误。

ActiveRecord::StatementInvalid in Timespans#index

Showing C:/xampp/htdocs/fluxcapacitor/app/views/timespans/index.html.erb where line #19 raised:

SQLite3::SQLException: no such table: timespans: SELECT "timespans".* FROM "timespans"

我尝试将我的表格添加到schema.rb,但它不起作用。当我运行

时,它总是被覆盖

rake db:migrate RAILS_ENV=development

2 个答案:

答案 0 :(得分:3)

您应该生成migration

bundle exec rails g migration create_timespans

在迁移中,您应该:

class CreateTimespans < ActiveRecord::Migration
  def change
    create_table :timespans
      t.string :column1
      t.string :column2
      # ...
    end
  end
end

并使用bundle exec rake db:migrate运行它。

这是在Rails应用程序中对数据库模式进行更改的正确方法。

答案 1 :(得分:2)

您希望使用迁移来更改数据库。有关详细信息,请参阅the Active Record Migrations guide

一般来说,这个过程就像:

  1. rails generate migration create_timespans为您生成空迁移。
  2. 编辑创建的迁移以按照您的意愿设置表格。这应该与您在schema.rb中添加的内容非常相似。
  3. rake db:migrate然后将这些更改应用于数据库。