Ruby 在 rails 通过 rails 控制台更新模型

Ruby on rails updating model via rails console

我有 运行 rails g 模型任务 description:text。然后我有 运行 rails 控制台并执行一些任务。我现在想向 create_tasks.rb 文件添加更多属性。例如.string :title。

我尝试了什么:

  1. 打开文件(create_tasks.rb),放入新行。然后运行 rake db:migrate然后回到控制台并打开第一个任务 而且它不显示标题属性。
  2. 还尝试使用 title 属性创建新任务。 Error: unknown title attribute for Task.

那么,我该如何更新模型?

您需要rails db:rollback在最近一次迁移之前回滚数据库,将新变量添加到迁移文件,然后运行rails db:migrate让新的部分包含迁移文件。

如果您需要回滚更多修订(如果您在创建此模型后创建了更多迁移),您可以包括回滚次数,例如

rails db:rollback STEP=<enter number of steps>
#e.g. rails db:rollback STEP=2

或者,您也可以 rails db:reset 这将删除所有数据库,重新创建它们,然后重新迁移它们。或者您可以 rails db:drop 删除数据库,然后 rails db:createrails db:migrate 迁移新数据库。

不要编辑架构文件。当您 运行 迁移等以匹配迁移文件的内容时,架构文件会自动更新。

欢迎来到Rails!

在这里您可以找到一些关于如何处理迁移的教程:

基本上,每次要修改迁移时,您必须:

  1. 运行 rake db:rollback
  2. 修改迁移
  3. 运行 rake db:migrate

希望对您有所帮助。写得不错!!