2009-04-15 12 views
1

同じデータベース上で2つのレールのウェブサイト(ホームページとアプリ)を実行したい。ただし、両方のWebサイトが同時にschema_migrationsテーブルを使用しようとするため、移行は機能しません。複数のレールサイトが同じデータベースを指している

デフォルトのschema_migrationsテーブル名を上書きすることはできますか?他のアイデアはどのようにこの問題を解決する?

答えて

1

はschema_migrationsテーブル名は、あなたが(environment.rbに、初期化子などで)上書きする私はできるかもしれないActiveRecord::Migrator.schema_migrations_table_name、に保たれているが、私はこれを試していません。

一方、両方のアプリケーションで一意の移行IDを使用する場合(2.1以降ではデフォルト)、2つのアプリケーションからの移行は1つのschema_migrationsテーブルで動作するはずです。

Rails 2.1以上での移行の詳細については、this screencastを参照してください。

+0

ActiveRecord :: Migrator.schema_migrations_table_nameが凍結されていて、レールがそれを無効にすることはできません。 ええと、私は両方のアプリを同じschema_migrationsに書き込もうとします。 とにかくお返事ありがとうございます – Mantas

0

これがいつ追加されたのかわかりませんが、Rails 4は今サポートしているようです。 Rails documentation

config.active_record.schema_migrations_table_nameから

は、スキーマの移行テーブルの名前として使用される文字列を設定することができます。

これがサポートされていないバージョンのRailsを使用している場合は、table_name_prefixを使用することもできます。このアプローチを使用している場合は、ソースコードを見て、あなたのバージョンのRailsがスキーマ移行の前にtable_name_prefixを付けていることを確認したいと思います。

関連する問題