我第一次在Rails应用程序上工作。我正在使用Rails 4.根据教程和书籍,我使用Rails migrate
命令生成初始模式。之后我打电话给rake db:migrate
。消息显示表已创建,但当我转到db/development.sqlite3
时,我根本找不到任何表。
以下是迁移文件的代码
class CreateEvents < ActiveRecord::Migration
def change
create_table :events do |t|
t.string :title
t.text :summary
t.integer :total_impacts #added later but does not reflect in db
t.integer :current_status #added later but does not reflect in db
t.timestamps
end
end
end
我缺少哪些步骤?
答案 0 :(得分:0)
由于我处于数据库I的早期阶段,因此在db:schema:load
文件中进行更改后调用了schema.rb
。
我猜add_column
也应该有效但不确定。
答案 1 :(得分:0)
阅读完评论后,我认为该表已成功创建,但这只是:total_impacts
和:current_status
列的问题。
如果您运行一次迁移,数据库就会知道它已经通过它,并且除非明确指定(rake db:migrate VERSION=...
),否则不会再次运行它。
因此,如果您编写迁移,运行它,然后更新它并尝试再次运行它,您刚刚添加的内容(如新列)将不会出现在您的数据库中(因为迁移已经从数据库的角度来看)。
如果您在运行迁移后意识到忘了一些事情,那么您有两种选择:
down
部分),编辑并再次运行(播放up
部分)。根据您何时意识到您的错误(已经添加了与该迁移相关的一些数据等等),这个可能会有点棘手。