1

Я создаю приложение, которое использует базу данных mysql и postgres. Я использую postgres из-за postgis, поскольку это приложение основано на местоположении. Postgres имеет только одну базу данных Places, тогда как mysql содержит все остальные. Во время разработки я создал несколько ассоциаций среди различных моделей, включая модель Place. Но, как я понял, из-за разных баз данных ошибки объединения для ассоциаций не удались.Rails Ассоциации моделей, но разные базы данных

Моя идея - переместить все мои таблицы только в DB Postgres. Поэтому я не нуждаюсь в MySQL.

Но переход к Postgres из MySQL - мой последний вариант. Мне было интересно, есть ли способ упростить связь между моделями, сидящими в разных базах данных?

Благодаря

+0

, чтобы держать вас в приложении, не очень хорошая практика, связанная с другой базой данных –

ответ

2

В качестве прямого ответа на свой вопрос, вы можете использовать возможности PostgreSQL иностранных данные Wrapper (ИДП), чтобы ссылаться на таблицы из других баз данных, включая MySQL.

http://www.postgresql.org/docs/current/interactive/ddl-foreign-data.html

http://wiki.postgresql.org/wiki/Foreign_data_wrappers

http://www.postgresql.org/docs/current/interactive/sql-createserver.html

http://www.postgresql.org/docs/current/interactive/sql-createforeigntable.html

Тем не менее, способность планировщика для оптимизации запроса, который соединяет внешнюю таблицу строго ограничены. Хотя простые запросы к одной внешней таблице должны выполняться очень хорошо, если вы попытаетесь реализовать реальную мощь SQL со сложным декларативным запросом, это может быть на несколько порядков медленнее, чем если бы это было на PostgreSQL.

Моим советом было бы переместить его на PostgreSQL, если это практически осуществимо. Если это слишком сильно отбросит временные строки, вы можете подумать о том, чтобы использовать FDW как временный «мост», чтобы быстро вставать и бегать, и перемещать таблицы по мере возможности или необходимости, чтобы оптимизировать производительность.

+0

спасибо за совет. Я действительно пошел вперед и переместил все в базу данных postgres. Хотя есть некоторые незначительные проблемы, такие как «tsvector», которые не идентифицируются адаптером Postgres-Rails, все прямолинейно по сравнению с FDW. – hashpipe

 Смежные вопросы

  • Нет связанных вопросов^_^