有没有办法只在开发数据库上运行迁移。
我使用 Heroku Connect,将 Postgres 中的某些表与 Salesforce 中的某些表同步。
目前我做了一些 hack,我做了一些迁移,镜像 Postgres 中的表,我正在与 Salesforce 同步。
然后我删除迁移文件(将它们放在单独的文件夹中),然后再推送到 heroku。这需要完成,因为迁移文件会混淆 heroku connect 的工作方式。只是为了上下文。模型看起来像这样。
class MyModel < ApplicationRecord
self.table_name = 'salesforce.someTable__c' unless Rails.env.development?
end
所以不能真正对my_models
数据库中的表进行迁移。
问题是任何时候我必须改变同步的性质,我需要把这些文件带回来,回滚数据库,更新那些原始迁移文件,迁移数据库,然后删除那些迁移文件。
并不是最好的解决方案。
所以回到这个问题。有没有办法只在开发中运行迁移,这样当我在生产中运行迁移时,它会跳过那些仅用于开发的迁移。就像是:
if Rails.env.development?
...
else
...
end
或者
if Rails.env.production?
...
else
...
end