同じデータベース上で2つのレールのウェブサイト(ホームページとアプリ)を実行したい。ただし、両方のWebサイトが同時にschema_migrationsテーブルを使用しようとするため、移行は機能しません。複数のレールサイトが同じデータベースを指している
デフォルトのschema_migrationsテーブル名を上書きすることはできますか?他のアイデアはどのようにこの問題を解決する?
同じデータベース上で2つのレールのウェブサイト(ホームページとアプリ)を実行したい。ただし、両方のWebサイトが同時にschema_migrationsテーブルを使用しようとするため、移行は機能しません。複数のレールサイトが同じデータベースを指している
デフォルトのschema_migrationsテーブル名を上書きすることはできますか?他のアイデアはどのようにこの問題を解決する?
はschema_migrationsテーブル名は、あなたが(environment.rbに、初期化子などで)上書きする私はできるかもしれないActiveRecord::Migrator.schema_migrations_table_name
、に保たれているが、私はこれを試していません。
一方、両方のアプリケーションで一意の移行IDを使用する場合(2.1以降ではデフォルト)、2つのアプリケーションからの移行は1つのschema_migrationsテーブルで動作するはずです。
Rails 2.1以上での移行の詳細については、this screencastを参照してください。
これがいつ追加されたのかわかりませんが、Rails 4は今サポートしているようです。 Rails documentation
config.active_record.schema_migrations_table_nameから
は、スキーマの移行テーブルの名前として使用される文字列を設定することができます。
これがサポートされていないバージョンのRailsを使用している場合は、table_name_prefixを使用することもできます。このアプローチを使用している場合は、ソースコードを見て、あなたのバージョンのRailsがスキーマ移行の前にtable_name_prefixを付けていることを確認したいと思います。
ActiveRecord :: Migrator.schema_migrations_table_nameが凍結されていて、レールがそれを無効にすることはできません。 ええと、私は両方のアプリを同じschema_migrationsに書き込もうとします。 とにかくお返事ありがとうございます – Mantas