Mantas
Mantas

Reputation: 5951

multiple rails sites pointing to the same database

I want to run two rails websites (homepage and app) on the same database. However, migrations dont work because both websites try to use schema_migrations table at the same time.

Is it possible to override default schema_migrations table name? Any other ideas how to solve this problem?

Upvotes: 1

Views: 839

Answers (2)

davidinjc
davidinjc

Reputation: 61

I don't know when this was added but Rails 4 seems to support it now.

From the Rails documentation

config.active_record.schema_migrations_table_name lets you set a string to be used as the name of the schema migrations table.

If you are using a version of Rails where this is not supported then an alternative could be to use table_name_prefix. If you are using this approach, I'd make sure that your version of Rails prefixes schema migrations with table_name_prefix by looking at the source code.

Upvotes: 0

Can Berk Güder
Can Berk Güder

Reputation: 113310

The schema_migrations table name is kept in ActiveRecord::Migrator.schema_migrations_table_name, which you might me able to override (in environment.rb, initializers, etc.), but I haven't tried this.

On the other hand, if you use unique migration IDs in both application (default in 2.1 onwards, I think), migrations from two applications should work with a single schema_migrations table.

See this screencast for more information on how migrations work in Rails 2.1 and up.

Upvotes: 1

Related Questions