Приложение Yesod на кетере с доступом только для чтения к БД - PullRequest
0 голосов
/ 12 ноября 2018

У меня есть пара приложений yesod, развернутых с использованием keter с PostgreSQL. Что мне действительно нравится в них, так это автоматическая миграция БД, которая происходит при развертывании.

Но теперь я столкнулся с небольшой проблемой: я установил реплику БД на другой виртуальной машине; вторая БД является подчиненной и, следовательно, доступна только для чтения. Когда я запускаю keter с развернутыми приложениями, приложения не могут запуститься, потому что они не могут успешно выполнить скрипт миграции. Есть только фиктивные изменения, нет реальных изменений таблицы, но приложение не запускается с "cannot execute ALTER TABLE in a read-only transaction".

Возможно ли временно отключить сценарии миграции при запуске через кетер или конфиги приложения или переменные ENV?

1 Ответ

0 голосов
/ 13 ноября 2018

Возможно ли временно отключить сценарии миграции при запуске через кетер или конфиги приложения или переменные ENV?

Да, это возможно. Самый простой способ сделать это - использовать переменные окружения, на мой взгляд. Если вы используете сайт скаффолдинга yesod, то вам нужно внести изменения в функцию makeFoundation, которая запускает миграцию. Обратите внимание, что функция с именем runMigration используется для ее выполнения. Вам нужно добавить соответствующее условие, чтобы оно заработало.

...