【发布时间】:2014-03-21 19:05:21
【问题描述】:
我正在使用教程学习 Rails,在 Nitrous.io 中工作,并修改了我的迁移文件以创建模型之间的关系。这是一个简单的时间跟踪应用程序。修改后的迁移文件之一的示例如下:
class CreateWorks < ActiveRecord::Migration
def change
create_table :works do |t|
t.integer :project_id
t.integer :user_id
t.datetime :datetimeperformed
t.decimal :hours, precision: 5, scale: 2
t.timestamps
end
end
end
项目 id、用户 id、datetimeperformed 和 hours 都是新的,但是当我运行 rake db:migrate 将它们推送到 schema.rb 时,什么也没有发生。它暂停,然后给我一个新的提示,但 schema.rb 文件没有被修改。
我得出的结论是由于某种原因没有进行迁移,但不知道为什么。有什么明显的我做错了吗?感谢您的帮助。
【问题讨论】:
-
尝试 .float 而不是 .decimal
-
如果您只想更改架构,您可以尝试 rake db:schema:dump。但是,如果您已经应用了迁移,那么如果您更改了迁移文件,则 db:migrate 将不会应用更改。您可以回滚并重新应用迁移,但我不确定这是一个很好的做法。
标签: ruby-on-rails