【问题标题】:Ruby on rails updating model via rails consoleRuby on rails 通过 rails 控制台更新模型
【发布时间】:2017-11-08 04:00:18
【问题描述】:

我已经运行 rails g model 任务描述:文本。然后我运行了 rails 控制台并执行了一些任务。我现在想向 create_tasks.rb 文件添加更多属性。比如.string:title。

我尝试了什么:

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

那么,如何更新模型?

【问题讨论】:

  • 一般性评论——通常最好为每个 db 更改创建一个新的迁移,而不是更改现有的迁移。这样,项目中的每个开发人员都可以简单地运行新的迁移,而无需回滚、乱七八糟等。

标签: ruby-on-rails database rails-console


【解决方案1】:

您需要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 迁移新数据库。

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

【讨论】:

    【解决方案2】:

    欢迎使用 Rails!

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

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

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

    我希望这会有所帮助。好编码!!

    【讨论】:

      猜你喜欢
      • 2022-08-15
      • 1970-01-01
      • 1970-01-01
      • 2012-09-13
      • 1970-01-01
      • 2017-09-30
      • 1970-01-01
      • 2010-12-14
      • 1970-01-01
      相关资源
      最近更新 更多