несколько сайтов рельсов, указывающих на одну и ту же базу данных - PullRequest
1 голос
/ 16 апреля 2009

Я хочу запустить два сайта rails (домашнюю страницу и приложение) в одной базе данных. Однако миграция не работает, поскольку оба веб-сайта пытаются использовать таблицу schema_migrations одновременно.

Можно ли переопределить имя таблицы по умолчанию schema_migrations? Любые другие идеи, как решить эту проблему?

Ответы [ 2 ]

1 голос
/ 16 апреля 2009

Имя таблицы schema_migrations хранится в ActiveRecord::Migrator.schema_migrations_table_name, которую вы могли бы мне переопределить (в environment.rb, инициализаторах и т. Д.), Но я не пробовал это.

С другой стороны, если вы используете уникальные идентификаторы миграции в обоих приложениях (по умолчанию, начиная с версии 2.1, я думаю), миграции из двух приложений должны работать с одной таблицей schema_migrations.

См. эту скринкаст для получения дополнительной информации о том, как работают миграции в Rails 2.1 и выше.

0 голосов
/ 29 мая 2014

Я не знаю, когда это было добавлено, но Rails 4, кажется, теперь поддерживает это.

Из документации Rails

config.active_record.schema_migrations_table_name позволяет установить строку, которая будет использоваться в качестве имени таблицы миграции схемы.

Если вы используете версию Rails, где это не поддерживается, то альтернативой может быть использование table_name_prefix. Если вы используете этот подход, я позабочусь о том, чтобы ваша версия Rails префиксировала миграцию схемы с table_name_prefix, посмотрев на исходный код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...