有没有一种方法只在开发数据库上运行迁移?
我使用Heroku Connect将Postgres中的某些表与Salesforce中的某些表同步。
目前,我进行了一些黑客操作,其中我制作了一些迁移文件,这些文件镜像了我正在与Salesforce同步的Postgres表。
然后,在推送到Heroku之前,我删除迁移文件(将它们放在一个单独的文件夹中)。需要这样做是因为迁移文件会影响Heroku Connect的工作方式。仅供参考。模型看起来像这样。
我使用Heroku Connect将Postgres中的某些表与Salesforce中的某些表同步。
目前,我进行了一些黑客操作,其中我制作了一些迁移文件,这些文件镜像了我正在与Salesforce同步的Postgres表。
然后,在推送到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
if Rails.env.development?
这样的用户代码,但它没有起作用。在 Heroku 上的 Rails 仍然尝试迁移数据库。你的语法是否与我尝试的不同? - user2517182