Запускать миграцию при развертывании приложения golang в Heroku - PullRequest
0 голосов
/ 07 апреля 2019

Я пытался настроить миграцию для приложения golang на Heroku.Я использую нативные модули Go (vgo) и официальный сборочный пакет Heroku.Для миграций я использую пакет migrate .

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

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

Я мог бы справиться с этим с помощью команды Heroku CLI, но я не могу найти способ сделать это ни в документации, ни через Google.

1 Ответ

0 голосов
/ 07 апреля 2019

Все ваши зависимости должны быть определены так, чтобы Heroku мог установить их для вас. Для Go Heroku поддерживает godep и govendor . Если вы еще не используете его, выберите его и начните.

Ваш файл зависимостей должен быть зафиксирован в вашем хранилище. Для годепа это Godeps/Godeps.json, а для говендора vendor/vendor.json. Сами ваши зависимости должны не быть зафиксированными.

После добавления зависимости от migrate она должна быть доступна в Heroku. Вы можете запустить migrate up и другие команды через heroku run bash. Как только вы освоите запуск миграций вручную, вы можете подумать о добавлении команды фазы выпуска к своему Procfile, чтобы миграция применялась автоматически при развертывании новой версии.

...