我想在同一个数据库上运行两个rails网站(主页和应用程序)。但是,迁移不起作用,因为两个网站都试图同时使用schema_migrations表。
是否可以覆盖默认的schema_migrations表名?任何其他想法如何解决这个问题?
答案 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现在似乎支持它。
config.active_record.schema_migrations_table_name允许您设置一个字符串,以用作架构迁移表的名称。
如果您使用的是不支持此版本的Rails,则替代方法可能是使用table_name_prefix。如果您使用这种方法,我通过查看源代码确保您的Rails版本使用table_name_prefix作为模式迁移的前缀。