如何在我的生产数据库上运行迁移,而不是在我的开发数据库上运行?

时间:2010-10-09 02:34:12

标签: ruby-on-rails heroku

我的计算机上有一个开发数据库,​​Heroku上有一个生产数据库。我需要在生产数据库上运行迁移,以清除我不想在开发数据库上运行的某些数据。到目前为止,我只进行了我想在两者上运行的迁移,所以我只是在我的计算机上创建它,运行它,然后当我上传到Heroku时我也在那里运行它。如何仅在生产数据库上执行迁移?谢谢阅读。

3 个答案:

答案 0 :(得分:4)

  1. 创建迁移。
  2. 使用heroku rake db:migrate --app myapp提交,推送,在heroku上运行。
  3. 注释掉up区块的内容。
  4. 在本地运行(now-empty)迁移。
  5. 取消注释或git checkout / reset以恢复正常。
  6. 这样,本地数据库和生产数据库都会考虑迁移已经运行,而不是再次尝试运行它。

答案 1 :(得分:2)

迁移旨在更新数据库的结构,而不是操纵数据。如果要操作数据,则应使用控制台或脚本。

$ heroku console

答案 2 :(得分:-1)

RAILS_ENV =生产佣金db:migrate