我正在学习Rails,遇到了迁移。似乎每次我想编辑一个模型,即使我还没有进入生产阶段,我也需要添加迁移脚本。
您能否编辑您的模型,添加所有所需的属性,并在发布之前自动生成迁移脚本?
谢谢!
您能否编辑您的模型,添加所有所需的属性,并在发布之前自动生成迁移脚本?
谢谢!
rails generate migration ...
,因为它不仅在许多常见情况下生成正确的代码,还可以跟踪在不同版本的数据库中运行了哪些迁移。请参见http://guides.rubyonrails.org/migrations.html#creating-a-migration
一个常见的工作流程可能是这样的:bundle exec rake db:migrate
运行它--您的数据库架构将被更新。
您决定需要其他信息,例如出生日期,因此运行rails generate migration AddBirthdateToUser birthdate:date
。对于一些简单的操作,如添加列、索引等,将生成完整的迁移代码;在其他情况下,您需要编写迁移。完成后,运行迁移。
如果您在开发过程中发现问题,例如字段类型应该是浮点数而不是整数,或者忘记添加索引,您可以回滚迁移(bundle exec rake db:rollback
),修复迁移并重新运行它。
运行您的测试(将运行迁移),当所有内容在本地工作时,检查文件(包括迁移)并部署到具有自己数据库副本的QA或分段服务器中。
在分段服务器上运行rake db:migrate
。如果您在团队中,并且其他开发人员已经签入了迁移,则也会运行他们的迁移。现在,您的代码和数据架构是同步的。
重复 :-)
在生产部署期间运行迁移没有任何危害(我不同意上面的评论)--您应该接受这样的变化,即使是像这样的变化(在其他环境中可能非常困难),也是Rails日常生活的正常组成部分!