我尝试创建一个新的Link表,并在迁移时指定了必要的列。
在db / migrate
下class CreateLinks < ActiveRecord::Migration
def change
create_table :links do |t|
t.integer :user_id
t.string :url
t.timestamps
end
end
end
class AddTitleToLink < ActiveRecord::Migration
def change
# add_column :links, :user_id, :integer
add_column :links, :title, :string
end
end
当我运行rails console
时,Link返回
Link(id: integer, created_at: datetime, updated_at: datetime, title: string)
似乎缺少user_id
(外键)和url
。稍后添加的Title
在表中。
我做错了吗?
答案 0 :(得分:1)
您是否可以在编辑之前运行CreateLinks
迁移以添加两个字段?如果是这样,您可以整天更改该文件,rake db:migrate
将永远不会重新运行它。这可以解释有一个空表links
,以及您在下一次迁移中添加到其中的字段。
您可以通过运行rake db:rollback
来重新启动数据库。尝试两次,然后再次迁移。
答案 1 :(得分:1)
看不出有任何理由不这样做。你有可能第一次跑:
rails g model Link
(生成迁移并RAN)
然后你手动添加:url和:user_id?
尝试跑两次:
rake db:rollback
然后再次运行
rake db:migrate
将赶上您的手动修改