Желаемое состояние
Я хочу настроить мое приложение Rails на два типа производственных экземпляров:
- Один глобальный производственный экземпляр, который существует один раз и имеет производственную базу данных.
- Производственный экземпляр, который запускается локально на разных компьютерах и имеет локальную производственную базу данных для каждого компьютера.
Локальный экземпляр должен иметь возможность периодически синхронизировать c свою базу данных с производственной базой данных, если доступно соединение inte rnet.
Вопрос
Я вижу две основные идеи, как этого добиться, но для них обоих у меня есть несколько открытых вопросов:
- Используйте производственную среду для обоих, но используйте разные базы данных.
- Использование отдельная среда для обоих.
В первом случае мне нужно было бы найти способ решить, какую базу данных использовать. Например, может быть аргумент командной строки, чтобы указать rails использовать локальную базу данных. Но каким-то образом мне нужно иметь возможность указать активной записи, какую из них использовать.
В последнем случае мне нужно выяснить, как выполнять операции между средами.
На что я надеюсь ответить:
- Какой подход лучше
- Как заставить этот подход работать
Контекст
У меня есть приложение rails что я использую только себя. Я мог бы обнародовать это в какой-то момент, и это потенциально полезно и для других, но, главное, главное, чтобы он использовался для решения моих собственных проблем. Для тех, кто действительно заинтересован: это приложение для обучения кубика Рубика. Но это не должно относиться к вопросу.
Одна важная особенность - у меня есть несколько компьютеров, и я хочу использовать их со всех из них. Пока у меня есть соединение inte rnet, я могу просто настроить сервер и использовать мое приложение rails. Но я хочу иметь возможность использовать его и в автономном режиме.
Поэтому, когда у меня нет соединения, я хочу иметь возможность запускать приложение rails локально. Когда у меня снова будет соединение, мое приложение rails должно позаботиться о загрузке изменений в базу данных, которую я сделал. Обратите внимание, что запись подробностей в логи синхронизации c не является проблемой. Это общая настройка, которую я не знаю, как решить.