修改rails应用程序中的schema.rb

时间:2014-09-18 19:20:42

标签: ruby-on-rails migration

我是铁杆新手。

我想创建一个文章模型。所以我跑,

rails g model文章名称:字符串上下文:字符串

我输入内容而不是内容,是否有办法更新生成的schema.rb文件?

我希望文章表中包含名称和内容列。

1 个答案:

答案 0 :(得分:2)

不要专注于schema.rb - 这只是数据库当前状态的转储。相反,您需要做的是更正迁移文件。迁移文件实际上定义了生产中最终存在哪些表/列,因此它们必须是正确的。我建议:

  1. 运行ls -ltr db/migrate - 使用此选项查找迁移文件并复制日期字符串。 Rails使用它作为迁移的“版本”。例如:“20140809165359_create_articles”,版本为“20140809165359”。
  2. 运行bundle exec rake db:migrate:down VERSION=20140809165359(用您自己的版本号替换,此处)
  3. 现在去修复您的迁移文件(将“上下文”更改为“内容”)
  4. 运行bundle exec rake db:migrate以迁移回来。
  5. 这将解决根本问题,您会注意到,现在,在迁移后,您的schema.rb也将得到修复。