Ruby 在 rails 通过 rails 控制台更新模型
Ruby on rails updating model via rails console
我有 运行 rails g 模型任务 description:text。然后我有 运行 rails 控制台并执行一些任务。我现在想向 create_tasks.rb 文件添加更多属性。例如.string :title。
我尝试了什么:
- 打开文件(create_tasks.rb),放入新行。然后运行
rake
db:migrate
然后回到控制台并打开第一个任务
而且它不显示标题属性。
- 还尝试使用 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:create
和 rails db:migrate
迁移新数据库。
不要编辑架构文件。当您 运行 迁移等以匹配迁移文件的内容时,架构文件会自动更新。
欢迎来到Rails!
在这里您可以找到一些关于如何处理迁移的教程:
- http://edgeguides.rubyonrails.org/active_record_migrations.html
- https://www.tutorialspoint.com/ruby-on-rails/rails-migrations.htm
基本上,每次要修改迁移时,您必须:
- 运行
rake db:rollback
- 修改迁移
- 运行
rake db:migrate
希望对您有所帮助。写得不错!!
我有 运行 rails g 模型任务 description:text。然后我有 运行 rails 控制台并执行一些任务。我现在想向 create_tasks.rb 文件添加更多属性。例如.string :title。
我尝试了什么:
- 打开文件(create_tasks.rb),放入新行。然后运行
rake db:migrate
然后回到控制台并打开第一个任务 而且它不显示标题属性。 - 还尝试使用 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:create
和 rails db:migrate
迁移新数据库。
不要编辑架构文件。当您 运行 迁移等以匹配迁移文件的内容时,架构文件会自动更新。
欢迎来到Rails!
在这里您可以找到一些关于如何处理迁移的教程:
- http://edgeguides.rubyonrails.org/active_record_migrations.html
- https://www.tutorialspoint.com/ruby-on-rails/rails-migrations.htm
基本上,每次要修改迁移时,您必须:
- 运行
rake db:rollback
- 修改迁移
- 运行
rake db:migrate
希望对您有所帮助。写得不错!!