多个rails站点指向同一个数据库

时间:2009-04-15 22:59:42

标签: ruby-on-rails ruby migration

我想在同一个数据库上运行两个rails网站(主页和应用程序)。但是,迁移不起作用,因为两个网站都试图同时使用schema_migrations表。

是否可以覆盖默认的schema_migrations表名?任何其他想法如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

schema_migrations表名保存在ActiveRecord::Migrator.schema_migrations_table_name中,您可能我能够覆盖(在environment.rb,初始化程序等中),但我没有尝试过。

另一方面,如果您在两个应用程序中使用唯一的迁移ID(我认为默认为2.1以上),则来自两个应用程序的迁移应该与单个schema_migrations表一起使用。

有关迁移如何在Rails 2.1及更高版本中运行的详细信息,请参阅this screencast

答案 1 :(得分:0)

我不知道何时添加,但Rails 4现在似乎支持它。

来自Rails documentation

  

config.active_record.schema_migrations_table_name允许您设置一个字符串,以用作架构迁移表的名称。

如果您使用的是不支持此版本的Rails,则替代方法可能是使用table_name_prefix。如果您使用这种方法,我通过查看源代码确保您的Rails版本使用table_name_prefix作为模式迁移的前缀。