2012-02-23 2 views
2

Я хотел бы запускать миграции до, развертывая код в моем экземпляре Heroku. Это связано с тем, что код, который я пишу, обратно совместим с моей базой данных, и если миграция занимает много времени, я не хочу сначала нажимать код, переносить приложение в режим maintence до тех пор, пока миграция не будет выполнена, а затем вытащите приложение из режим поддержки.Перенос миграции Heroku перед развертыванием кода

Если такое решение существует или что-то, что решит мою проблему, я хотел бы узнать об этом. В настоящее время у меня есть отдельный блок со всем кодом (и миграциями), который принимает сначала push, затем запускает миграцию, затем разворачивает код в Heroku.

Есть ли лучшее решение?

+0

Почему бы просто не натолкнуть ваши миграции на Хероку, не сделать свой db: мигрировать, а затем нажать остальные? –

+0

Это может сработать. Просто немного больше git fu. – maletor

+0

Для перетаскивания одной папки в git потребуется переустановка. – maletor

ответ

1

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

-2

Вы могли бы heroku db:pull выполнить свои миграции на своем местном, а затем heroku db:push, а затем развернуть.

+0

Мне нужно только нажать/вытащить схему, а не данные. – maletor

+1

Это также приведет к удалению любых локальных данных с устройства dev и удаленной базы данных, и для больших баз данных потребуется много времени. – stringo0

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