2009-04-15 23 views
1

我想在同一個數據庫上運行兩個rails網站(主頁和應用程序)。但是,遷移不起作用,因爲兩個網站都嘗試同時使用schema_migrations表。指向同一數據庫的多個rails站點

是否可以重寫默認的schema_migrations表名?任何其他想法如何解決這個問題?

回答

1

的schema_migrations表名保存在ActiveRecord::Migrator.schema_migrations_table_name,你可能我能夠覆蓋(在environment.rb中,初始化等),但我沒有試過。另一方面,如果您在兩個應用程序中都使用了唯一的遷移ID(我認爲在2.1中是默認的),那麼來自兩個應用程序的遷移應該可以與單個schema_migrations表一起使用。

有關遷移如何在Rails 2.1及更高版本中工作的更多信息,請參見this screencast

+0

ActiveRecord :: Migrator.schema_migrations_table_name似乎被凍結,rails不允許覆蓋它。 嗯,我會嘗試讓這兩個應用程序寫入相同的schema_migrations。 無論如何感謝您的答案 – Mantas 2009-04-16 07:29:53

0

我不知道這是什麼時候加入的,但Rails 4似乎現在支持它。

Rails documentation

config.active_record.schema_migrations_table_name允許您設置一個字符串作爲架構遷移表的名稱。

如果您使用的是不支持Rails的版本,則可以使用table_name_prefix。如果您正在使用這種方法,那麼通過查看源代碼,我會確保您的Rails版本使用table_name_prefix作爲模式遷移的前綴。

相關問題