開発データベース上で移行を実行する方法はありますか?Railsは開発環境用にのみ移行を実行します
私はHeroku Connectを使用して、Postgresの特定のテーブルとSalesforceの特定のテーブルを同期させます。
現在、私はSalesforceと同期しているPostgresのテーブルをミラー化するいくつかの移行を行っています。
その後、私はherokuにプッシュする前に、移行ファイルを削除します(別のフォルダに配置します)。これは、移行ファイルがheroku接続の仕組みを混乱させるために実行する必要があります。ちょうど文脈のために。モデルはこのように見えます。
class MyModel < ApplicationRecord
self.table_name = 'salesforce.someTable__c' unless Rails.env.development?
end
my_models
テーブルの移行は実際にはできません。
問題は、同期の性質を変更する必要があるときはいつでも、それらのファイルを戻し、dbをロールバックし、オリジナルの移行ファイルを更新し、データベースを移行してから移行ファイルを削除する必要があります。
実際には最適なソリューションではありません。
だから質問に戻る。開発時にマイグレーションを実行する方法があります。つまり、マイグレーションを本番環境で実行すると、開発用のマイグレーションはスキップされます。何かのように:
if Rails.env.development?
...
else
...
end
または
if Rails.env.production?
...
else
...
end
だから私はそのユーザーのようなものを試してみましたが、Rails.env.development?なら動作しませんでした。 herokuのRailsはまだdbを移行しようとしました。あなたの構文は私が試したものとは違ったことをしていますか? – user2517182
いずれかの方法でそれを試して見てください。 – user2517182
動作しませんでした。まだherokuのdbによって変更されています。 – user2517182