Когда я переключусь с использования 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 и из него.