Синхронизация таблиц между приложениями Rails без репликации SQL? - PullRequest
3 голосов
/ 29 апреля 2009

У меня есть приложение rails, которое использует две из тех же моделей, что и другое приложение rails, которое есть у меня. Каков наилучший способ синхронизации данных между двумя моделями?

Репликация MySQL, вероятно, будет невозможна из-за ограничений хостинга, и поскольку материал, который ссылается на реплицированные данные, является зависимым =>: destroy означает, что репликация mysql приведет к тому, что материал, который указывает на реплицированные данные, которые будут удалены, останется.

Короче говоря, как лучше всего выполнить репликацию между двумя приложениями rails для каждой модели на уровне приложений? Я собираюсь взломать мою собственную репликацию, используя REST, или есть лучший способ?

Я должен добавить, что данные изменяются нечасто, не чаще, чем несколько раз в день, и набор всегда будет меньше 50 000 строк.

Редактировать: В ответ на комментарий Тоби, приведенный ниже, все данные собираются в одном направлении.

Ответы [ 2 ]

0 голосов
/ 29 апреля 2009

Итак, оказывается, есть два плагина, которые делают это:

Действует как копия а также Действует как синхронизируемый

Действует как Реплика, кажется, имеет лучшую документацию.

Однако, учитывая сложность этого, я думаю, что для своих собственных нужд я собираюсь накатить свое, хотя и не идеальное, будет гораздо проще для моего собственного варианта использования.

Все данные в моих реплицированных таблицах просто отбираются из файла XML. XML не может быть отправлен полностью на сервер для репликации по соображениям конфиденциальности (я использую только подмножество в обоих приложениях, но дополнительные данные чувствительны), поэтому я собираюсь просто предоставить интерфейс REST с данными, которые я нужно и повторить это.

0 голосов
/ 29 апреля 2009

Это не конкретный ответ, но рассмотрим какой-то механизм организации очередей. Приложение A вносит изменения и записывает как в очередь, так и в базу данных. «Очередь» может быть таблицей в базе данных с надписью «Приложение A изменило модель M с идентификатором I». Тогда оба приложения могут иметь процесс, который опрашивает эту таблицу и применяет изменения.

Когда вы столкнетесь с проблемами, обе стороны изменят один и тот же объект.

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