Развернуть в Heroku из местного, а затем переключиться в Heroku из Github - PullRequest
0 голосов
/ 21 ноября 2018

Я собираюсь приступить к созданию веб-приложения стека MEAN, сначала создав API Restful, а затем добавив к нему внешний интерфейс.

Поскольку я планирую развернуть его в Heroku, яЯ хотел бы интегрироваться с Heroku с самого начала, используя для этого один из многочисленных руководств по Heroku .Это все будет сделано с моего локального компьютера.(Это будет мой первый раз, когда я буду использовать Heroku).

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

Я видел, как люди говорили о перезаписи существующего приложения Heroku из Github , но мой вопрос с противоположной стороны:

  1. Когда я переключусь с использования Local Git на Heroku и вместо этого сделаю Github на Heroku, придется ли мне «заново развертывать» все приложение с нуля?Другими словами, мой Github подтолкнет к Heroku перезаписать весь существующий код или все базы данных, настройки и т. Д. Все еще будут настроены?

  2. Как происходит переключение с локальногоGit -> Heroku и вместо этого сделать Github -> Heroku для того же приложения?

1 Ответ

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

Когда я переключусь с использования Local Git на Heroku и вместо этого сделаю Github на Heroku, придется ли мне «заново развертывать» все приложение с нуля?Другими словами, мой Github подтолкнет к Heroku перезаписать весь существующий код, или все базы данных, настройки и т. Д. Все еще будут настроены?

Я думаю, нам нужно поближе рассмотреть, какразвертывание работает на Heroku.

Включение интеграции GitHub приведет к повторному развертыванию приложения при каждом развертывании вручную из ветви GitHub или автоматически при обновлении ветви, в зависимости от того, как вы ее настроили.

Что касается развертывания, это ничем не отличается от загрузки новой версии с вашего локального компьютера.В обоих случаях Heroku скомпилирует ваше приложение в новый slug , и при условии, что сборка завершится успешно, slug будет запущен для формирования dyno.По сути, «весь существующий код» заменяется при каждом развертывании, независимо от того, как это делается.

Развертывание не должно затрагивать любые настроенные вами базы данных клиент-сервер.Они существуют вне порции вашего приложения.

Heroku рекомендует пользователям получить конфигурацию из среды .Если вы следуете этим указаниям, развертывание новой версии также не должно повлиять на вашу конфигурацию.Переменные среды, настроенные для одной версии приложения, остаются на месте после развертывания новой версии, независимо от того, выполняется ли это через git push или интеграцию с GitHub.

Короче говоря, очень мало изменений в том, как ваше приложение получаетразвертывается при включении интеграции GitHub².При желании вы даже можете выполнить развертывание с локального компьютера через git push, не отключая интеграцию с GitHub.

Если вы освоитесь с архитектурой Heroku и развернете процесс локально, у вас не должно возникнуть особых проблем при включении интеграции с GitHub.

Как происходит переключение с Local Git -> Heroku и вместо этого Github -> Heroku для того же приложения?

Просто включите его и следуйте инструкциям.Вам будет предложено разрешить Heroku взаимодействовать с GitHub для вас.«Переключение» не оказывает никакого влияния на этот процесс (и на самом деле не совсем точно: вы включаете второй способ развертывания, а не переключения).


¹Базы данных на основе файлов, такие какSQLite не будет работать на Heroku из-за его эфемерной файловой системы .

«На Git-сервере Heroku не создаются ссылки для кода, развернутого непосредственно из GitHub.То есть, если вы развернетесь из GitHub, а затем git fetch из Heroku, вы не увидите ничего нового из GitHub.Конечно, вы все равно можете использовать Git для push, fetch и pull непосредственно в GitHub и из него.

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