Heroku как удалить приложение
У нас есть проект, который сохраняется на Github, и развернуть его в Heroku, который имеет свой собственный мини-Git. Некоторые изменения были применены непосредственно к Heroku (клонированный репозиторий от Heroku, внес изменения и нажал). Тем временем главная ветвь на Github также получила некоторые изменения.
теперь, когда я хочу нажать основной репозиторий на Heroku, нажатие не удается, потому что коммиты на Heroku не синхронизированы с локальными совершает.
Я не хочу сливаться с изменениями на Heroku - я просто хочу, чтобы они исчезают.
есть ли способ очистить репозиторий git на Heroku, чтобы подтолкнуть мое локальное РЕПО с самого начала?
Я не хочу уничтожать приложение и воссоздавать его снова, потому что у него есть некоторые платные услуги, и я просто сотрудник.
вы можете просто использовать -f флаг в git (это стандартный флаг git), чтобы заставить толчок. См. примечание в Центре разработки Git док. Это, очевидно, перезапишет те изменения, которые вы сделали на Heroku.
установить Heroku Repo плагин и используйте его для сброса удаленного репозитория git.
Сначала удалите репозиторий git на сервере:
затем повторно инициализируйте локальное git-РЕПО, удалив и воссоздав его:
здесь <appname> это имя вашего приложения в heroku.
2 репозитория (локальный и удаленный) теперь должны быть пустыми и синхронизированными.
Если ваш Heroku push терпит неудачу, потому что это не быстрая перемотка вперед, и вы не пытаетесь сделать что-нибудь фанки с вашей историей, это очень просто:
- убедитесь,что ваш репозиторий non-Heroku определен как удаленный.
- извлечь все пульты.
объедините другой репозиторий в локальный клон Heroku, используя рекурсивную стратегию с опцией стратегии "theirs".
пуш --force возможность сделать не-быструю перемотку вперед фиксации в хранилище Heroku вверх по течению.
С другой стороны, если вы действительно хотите очистить историю, у вас есть какие-то другие варианты.
удалите все, кроме первого коммита из вашей истории (самый простой).
лично я бы рекомендовал держать ваша история и исправление проблемы быстрой перемотки вперед как лучшая практика, но у вас, безусловно, есть варианты, если вы хотите агрессивно изменить свою историю. Git очень гибок в этом отношении.
вы также можете просто использовать систему управления версиями приложений heroku. Переходя к "Activity" у вас есть полная история проекта: откат к первой активности и РЕПО должны быть полностью очищены, возвращаясь к своему состоянию, когда приложение было первоначально создано на Heroku.
Туда Сюда
Это восемнадцатая часть серии Мега-учебников Flask, в которой я собираюсь развернуть микроблог на облачной платформе Heroku.
Под спойлером приведен список всех статей этой серии 2018 года.
Примечание 1: Если вы ищете старые версии данного курса, это здесь.
В предыдущей статье я показал вам «традиционный» способ размещения приложения Python, и представил вам два реальных примера развертывания на Linux-серверах. Если вы не на "ТЫ" системой Linux, то вероятно вам показалось, что объем затраченных усилий на такое развертывание был слегка больше ожидаемого, и, безусловно, должен быть более простой способ.
В этой главе я покажу вам совершенно другой подход, в котором вы полагаетесь на стороннего провайдера облачного хостинга при выполнении большинства задач администрирования, что позволяет вам больше времени работать над самим приложением.
Многие облачные хостинг-провайдеры предлагают управляемую платформу, на которой можно запускать веб-приложения. Все, что вам нужно предоставить, чтобы ваше приложение было развернуто на этих платформах, — это фактическое приложение, потому что аппаратное обеспечение, операционная система, интерпретаторы языка сценариев, база данных и т.д. управляются службой. Этот тип сервиса называется Platform as a Service или PaaS.
Звучит слишком хорошо, чтобы быть правдой, не так ли?
Я буду развертывать Microblog на Heroku, популярном облачном сервисе, который также очень удобен для приложений Python. Я выбрал Heroku не только потому, что он популярен, но и потому, что у него есть бесплатный уровень обслуживания, который позволит вам следовать за мной и выполнять полное развертывание, не тратя никаких денег.
Хостинг на Heroku
Heroku, одна из первых облачных платформ, которая появилась в июне 2007 года и изначально поддерживала только язык программирования Ruby, но на данный момент список поддерживаемых языков также включает в себя Java, Node.js, Scala, Clojure, Go, PHP и конечно Python.
Развертывание веб-приложения в Heroku выполняется с помощью средства управления версиями git , поэтому приложение должно находиться в репозитории git. Heroku ищет файл под названием Procfile в корневом каталоге приложения для получения инструкций о том, как запустить приложение. Для проектов Python, Heroku потребуется файл requirements.txtфайл со списком всех зависимостей модулей, которые необходимо установить. После того, как приложение будет загружено на серверы Heroku через git, вы, по сути всё сделали, и нужно просто подождать несколько секунд, пока приложение появится в сети. Это действительно так просто.
Heroku предлагает вам выбрать уровень обслуживания исходя из необходимой вычислительной мощности и времени требуемой вашему приложению, так как ваша база пользователей растет вам нужно будет купить больше единиц вычислительных, которые Heroku называет "dynos".
Готовы попробовать Heroku? Давайте начнем!
Создание учетной записи Heroku
Установка Heroku CLI
Heroku предоставляет командную строку для взаимодействия с службой под названием Heroku CLI, доступной для Windows, Mac OS X и Linux. Документация содержит инструкции по установке для всех поддерживаемых платформ. Установите его в своей системе, если вы планируете развертывать приложение для тестирования службы.
Первое, что вы должны сделать после установки CLI, это войти в ваш Heroku аккаунт:
Heroku CLI попросит вас ввести свой адрес электронной почты и пароль учетной записи. Ваш аутентифицированный статус будет сохранен в последующих командах.
Настройка Git
Инструмент git является основой для развертывания приложений в Heroku, поэтому вы должны установить его в своей системе, если у вас его еще нет. Если у вас нет пакета, доступного для вашей операционной системы, вы можете посетить сайт git для загрузки установщика.
Есть множество причин использовать git для ваших проектов. Если вы планируете развертывание в Heroku, то у вас появилась еще одна, потому что для развертывания в Heroku ваше приложение должно быть в репозитории git . Если вы собираетесь выполнить тестовое развертывание для Микроблога, вы можете клонировать приложение из GitHub:
Команда git checkout выбирает конкретную точку фиксации приложения в его истории, соответствующей этой главе.
Если вы предпочитаете работать с собственным кодом, а не с моим, вы можете преобразовать свой собственный проект в репозиторий git , запустив git init . в каталоге верхнего уровня (обратите внимание на точку после init , которая является инструкцией для git, что вы хотите создать репозиторий в текущем каталоге).
Создание приложения Heroku
Чтобы зарегистрировать новое приложение в Heroku, используйте команду apps:create из корневого каталога, передавая имя приложения в качестве единственного аргумента:
Heroku требует, чтобы приложения имели уникальное имя. Имя flask-microblog , которое я использовал выше, не будет вам доступно, потому что я уже использую его, поэтому вам нужно будет выбрать другое для вашего развертывания.
На выходе этой команды мы получим URL, который Heroku назначил приложению, а также его репозиторий git. Ваш локальный репозиторий git уже будет иметь настройку связи с внешним(remote), называемым heroku . Вы можете убедиться, что он существует с помощью команды git remote :
В зависимости от того, как вы создали свой репозиторий git, вывод вышеуказанной команды также может включать в себя еще один удаленный источник с именем origin .
Эфемерная файловая система
Платформа Heroku отличается от других платформ развертывания тем, что в ней реализована ephemeral файловая система, работающая на виртуальной платформе. Что это значит? Это означает, что в любое время Heroku может сбросить виртуальный сервер, что приведет к возврату вашего сервера в чистое состояние. Нельзя предположить, что любые данные, которые вы сохраняете в файловой системе, будут сохраняться, и на самом деле, Heroku очень часто перерабатывает серверы.
Работа в этих условиях создает некоторые проблемы для моего приложения, которое использует несколько файлов:
- Компонент SQLite database engine по умолчанию записывает данные в файл на диске
- Журналы для приложения записываются в файловую систему
- Скомпилированные хранилища языковых переводов также хранятся в локальных файлах
В следующих разделах будут рассмотрены эти три направления.
Работа с базой данных Heroku Postgres
Чтобы решить первую проблему, я перейду на другой механизм базы данных. В главе 17 вы видели, как я использую базу данных MySQL, чтобы повысить надежность развертывания Ubuntu. У Heroku есть собственное предложение базы данных, основанное на Postgres, поэтому я собираюсь переключиться на него, чтобы избежать проблемы хранения SQLite на основе файлов.
Базы данных для приложений Heroku снабжаются одним и тем же CLI Heroku. В этом случае я собираюсь создать базу данных на бесплатном(free) уровне:
URL-адрес вновь созданной базы данных хранится в переменной среды DATABASE_UR L, которая будет доступна при запуске приложения. Это очень удобно, так как приложение уже ищет URL базы данных в этой переменной.
Ведение журнала в stdout
Heroku ожидает, что приложения будут совершать ввод/вывод непосредственно в stdout . Все, что приложение печатает в стандартном выводе сохраняется и возвращается при использовании команды heroku logs . Поэтому я собираюсь добавить переменную конфигурации, которая указывает, нужно ли мне вести записи в stdout или в файл, как я это делал ранее. Вот изменение в конфигурации:
Затем в функции фабрики приложений я могу проверить эту конфигурацию, чтобы понять, как настроить средство ведения журнала приложения:
Поэтому теперь мне нужно определить переменную среды LOG_TO_STDOUT , если приложение работает в Heroku, но не в других конфигурациях. CLI Heroku делает это легко, поскольку предоставляет возможность устанавливать переменные среды, которые будут использоваться во время выполнения:
Скомпилированные переводы
Третьим аспектом микроблога, основанного на локальных файлах, является скомпилированный языковой перевод файлов. Самый простой вариант, чтобы гарантировать, что эти файлы никогда не исчезнут из эфемерной файловой системы, — это добавить скомпилированные языковые файлы в репозиторий Git, чтобы они стали частью начального состояния приложения после его развертывания в Heroku.
Более элегантный вариант, на мой взгляд, заключается в том, чтобы включить команду flask translate compile в команду start up, предоставленную Heroku, так что каждый раз, когда сервер перезапустится эти файлы скомпилируются снова. Я собираюсь пойти этим путём, так как я знаю, что моя процедура запуска будет требовать более одной команды в любом случае, так как мне ещё нужно запустить миграцию базы данных. Поэтому сейчас я отложу эту проблему в сторону и вернусь к ней позже, когда напишу Procfile.
Хостинг Elasticsearch
Elasticsearch является одним из многих сервисов, которые могут быть добавлены к проекту Heroku, но в отличие от Postgres, это не услуга, предоставляемая Heroku, а третья сторона, которая сотрудничают с Heroku, чтобы обеспечить дополнения. На сегодняшний день(когда я пишу эти строки) есть три разных провайдеров комплексной службы elasticsearch.
Прежде чем настраивать Elasticsearch, имейте в виду, что Heroku требует, чтобы ваша учетная запись имела привязанную кредитную карту до установки любого стороннего дополнения, даже если вы остаетесь в пределах их бесплатных уровней. Если вы предпочитаете не предоставлять данные своей кредитки Heroku, пропустите этот раздел. Вы сможете развернуть приложение, но функция поиска не будет работать.
Из вариантов Elasticsearch, которые доступны в качестве дополнений, я решил попробовать SearchBox, который поставляется с бесплатным стартовым планом. Чтобы добавить SearchBox в свою учетную запись, вы должны выполнить следующую команду во время входа в Heroku:
Эта команда развернет службу Elasticsearch и разместит URL-адрес подключения для службы в переменной среды SEARCHBOX_URL , связанной с приложением. Еще раз напомню, что эта команда не будет выполнена, если Вы не добавите свою кредитную карту в свой аккаунт Heroku.
Если вы вспомните из главы 16, мое приложение ищет URL-адрес подключения Elasticsearch в переменной ELASTICSEARCH_URL , поэтому мне нужно добавить эту переменную и установить ее в URL-адрес подключения, назначенный SearchBox:
Здесь я сначала попросил Heroku напечатать значение SEARCHBOX_URL , а затем я добавил новую переменную среды с именем ELASTICSEARCH_URL , установленным в то же значение.
Обновление Requirements
Heroku ожидает, что зависимости будут в файле requirements.txt, точно так же, как я определил в главе 15. Но для запуска приложения на Heroku мне нужно добавить две новые зависимости к этому файлу.
Heroku не предоставляет собственный веб-сервер. Вместо этого он ожидает, что приложение запустит свой собственный веб-сервер по номеру порта, указанному в переменной среды $PORT . Поскольку Веб-сервер разработки flask недостаточно надежен для использования в работе, я собираюсь снова использовать gunicorn, сервер, рекомендованный Heroku для приложений Python.
Приложение также будет подключаться к базе данных Postgres, и для этого SQLAlchemy требует установки пакета psycopg2 .
И gunicorn и psycopg2 нужно быть добавленным в файл requirements.txt.
Профайл
Heroku должен знать, как выполнить приложение, и для этого он использует файл с именем Procfile в корневом каталоге приложения. Формат этого файла прост, каждая строка содержит имя процесса, двоеточие, а затем команду, которая запускает процесс. Наиболее распространенным типом приложения, который работает на Heroku, является веб-приложение, и для этого типа приложений имя процесса должно быть web . Ниже вы можете увидеть Procfile для Microblog:
Здесь я определил команду для запуска веб-приложения как последовательность трёх команд. Сначала я запускаю обновление миграции базы данных, затем компилирую переводы языков и, наконец, запускаю сервер.
Поскольку первые две подкоманды основаны на команде flask , мне нужно добавить переменную среды FLASK_APP :
Команда gunicorn проще, чем то, что я использовал для развертывания Ubuntu, потому что этот сервер имеет очень хорошую интеграцию со средой Heroku. Например, переменная среды $PORT учитывается по умолчанию, и вместо того, чтобы использовать параметр -w для задания числа процессов, heroku рекомендует добавить переменную WEB_CONCURRENCY , которую gunicorn использует, когда -w не предоставляется, что дает вам гибкость для управления числом процессов без необходимости изменять Procfile.
Развертывание приложения
Все подготовительные шаги завершены, поэтому пришло время запуска развертывания. Для загрузки приложения на серверы Heroku для развертывания используется команда git push . Это похоже на отправку изменений в локальном репозитории git на GitHub или другой удаленный сервер git.
Если вы всё же работаете с собственным репозиторием, то ваш код уже, скорее всего, находится в главной ветви, поэтому вам сначала нужно убедиться, что ваши изменения пофиксены:
После чего можно запустить развертывание следующим образом:
Независимо от того, как вы отправляете ветку, вы должны увидеть следующий вывод из Heroku:
Метка heroku , которую мы использовали в команде git push , — это удаленный репозиторий, который был автоматически добавлен HEROKU CLI при создании приложения. Аргумент deploy:master означает, что я перемещаю код из локального репозитория, на который ссылается ветвь deploy , в главную ветвь master репозитория Heroku. Когда вы работаете с вашими собственными проектами, вы, вероятно, будете проталкивать изменения с помощью команды git push heroku master , которая протолкнет(запушит) вашу локальную ветку master . Из-за того, как этот проект структурирован, я отправляю ветку, которая не является master , но ветка назначения на стороне Heroku всегда должна быть master , поскольку это единственная ветвь, которую Heroku принимает для развертывания.
Если вы хотите видеть записи журнала для работающего приложения, используйте команду heroku logs . Это может быть полезно, если по какой-либо причине приложение не запускается. Если были какие-либо ошибки, они будут в журналах.
Развертывание обновлений приложений
Чтобы развернуть новую версию приложения, вам просто нужно выполнить команду git push с новым кодом. Это повторит процесс развертывания, отключит старое развертывание и заменит его новым кодом. Команды в Procfile будут запускаться снова как часть нового развертывания, поэтому любые новые миграции или переводы базы данных будут обновляться во время процесса.
- Open with Desktop
- View raw
- Copy raw contents Copy raw contents Loading
Copy raw contents
Copy raw contents
Мы с вами научились выкладывать наши сайты и ботов на Pythonanywhere, но это не единственный вариант. Существуют другие подобные сервисы - Heroku, Scalingo, Openshift.
Все они являются PaaS - Platform-as-a-Service, которые позволяют вам очень просто пользоваться облачным хостингом и быстро выкладывать свои приложения вместо того, чтобы самостоятельно настраивать сервер.
От Pythonanywhere они отличаются тем, что для них разработчиками не всегда предоставлен такой же удобный веб-интерфейс, в котором многое делается кнопочками в панели управления, и нужный функционал мы получем через командную строку Unix. Но ощее с Pythonanywhere у них то, что там есть возможность делать хотя бы что-то из того, что вам нужно, бесплатно.
Дело в том, что вслед за компанией Amazon многие другие IT-компании стали предоставлять пользователям (в числе которых и частные лица, и компании поменьше) облачные сервисы, то есть возможность не содержать на свои средства большой парк серверов (это часто неудобно, потому что бесперебойную работу серверов обеспечить не так просто), а покупать место на мощных серверах, которые содержит хозяин облака. Основные конкурирующие на этом поле сервисы -- это Amazon Web Services, Google Cloud и Microsoft Azure. Все они платные (Google предоставляет на своей платформе условно-бесплатный тестовый период в один месяц), но мощные и надёжные.
Почему еще и Heroku?
Pythonanywhere | Heroku |
---|---|
только одно приложение | несколько приложений |
свой домен - платная функция | позволяет использовать собственное доменое имя |
ограниченный доступ к внешним ресурсам | доступ к внешним ресурсам не ограничен |
Подробнее про количество бесплатных приложений: на Heroku можно создавать несколько приложений бесплатно лишь до тех пор, пока у вас есть свободные Dyno (про это будет ниже).
Подготовка к выкладыванию
- Чтобы наш фласк-сайт или фласк-бот заработал на Heroku, нужно убедиться, что в конце основной программы написан вот такой код:
В директории с вашим фласк-приложением обязательно должны быть следующие три файла:
requirements.txt - в этом файле нужно перечислить все не стандартные питоновские модули, которые необходимы для вашей программы. В списке нужно указать не только название модуля, но и нужную вам версию. Выглядеть это будет примерно так:
Обратите внимание, что в этот список НЕ НУЖНО писать setuptools и pip!
Когда вы будете выкладывать приложение, Heroku прочитает файл requirements.txt и установит все перечисленные модули командой pip install -r requirements.txt .
runtime.txt - в этом файле нужно написать одну строчку:
Если в директории нет runtime.txt , то Heroku будет по умолчанию думать, что ваше приложение написано на Python 2.7.
Procfile - обратите внимание, что у файла нет расширения, иначе heroku не сможет прочитать его содержимое. В этом файле нужно написать одну строчку:
Для выкладывания приложений на Heroku используется git. Поэтому если в вашей директории с проектом еще нет git-репозитория, его нужно создать. Открываем терминал (Mac, Linux) или командную строку (Windows) и пишем:
- cd путь-к-директории - переходим в директорию с нашим фласк-проектом,
- git init - создаем в текущей директории репозиторий,
- git add * - говорим гиту следить за всеми файлами в репозитории,
- git commit -m 'Initial commit' - делаем первый коммит.
Как выложить сайт на Heroku?
Зарегистрироваться на сайте Heroku, ваш email будет логином. Когда вы зарегистрировались, вы попадаете в Dashboard. Сейчас у вас там ничего нет - вам предлагают создать приложение (an app) или пройти туториал по работе с Heroku и выбранного вами языка программирования. Туториал по питону там ориентирован на джанго, мы работаем с фласком, так что наши действия будут слегка отличаться.
Открыть терминал (Mac, Linux) или командную строку (Windows) и выполнить команды:
- cd путь-к-директории - переходим в директорию с нашим фласк-проектом,
- heroku login - логинимся в наш аккаунт Heroku,
- ввести свой емейл и пароль, с которыми мы зарегистрировались,
- heroku create - создаем приложение, которое поможет Heroku получить наш код и запустить его. В этот момент Heroku делает сразу несколько вещей.
Во-вторых, к вашему репозиторию добавляется удаленный репозиторий (git remote), который называется heroku . У одного локального репозитория на вашем компьютере может быть несколько удаленных (например, у вас может быть origin - это ваш удаленный репозиторий на GitHub, и heroku - удаленный репозиторий на Heroku.)
git push heroku master - эта команда отправляет наш код на облачный хостринг, и Heroku устанавливает нужные модули.
heroku ps:scale web=1 - эта команда говорит запустить наш фласк-сайт на одном dyno.
A dyno is a lightweight Linux container that runs a single user-specified command.
То есть ваш сайт или бот будет работать на маленьком виртуальном Линукс-"сервере". Бесплатно вам доступно 550 или 1000 таких dyno.
heroku open - эта команда открывает ваш сайт в браузере. Ура! Все готово!
Если по какой-то причине сайт не заработал, то нужно посмотреть логи:
Поскольку мы отправляем все файлы на Heroku через git, возникает небольшая проблема:
Для работы с секретами рекомендуется использовать переменные среды: ваши ключи будут храниться в текстовых переменных вашей системы и в вашем Heroku-приложении, но при этом они никогда не попадут в открытый git-репозиторий.
Раньше мы с вами писали секретные ключи в игнорируемый файл (например, TOKEN = ". " внутри conf.py ) и импортировали секретные переменные с помощью from conf import * .
Вместо этого, можно установить переменную среды прямо в терминале\командной строке:
- Mac, Linux - export SOME_SECRET_KEY=1c3-cr3am-15-yummy
- Windows - set SOME_SECRET_KEY 1c3-cr3am-15-yummy (если у вас Windows 10, то setx )
- Heroku - heroku config:set SOME_SECRET_KEY=1c3-cr3am-15-yummy
После этого и на вашем компьютере, и в облачном хостинге Heroku переменную среды можно прочитать с помощью питона:
То есть строчку from conf import * вам придется заменить на строчки вида:
Кроме того, старые вебхуки с адресом на pythonanywhere уже не действительны, и их надо заменить на адрес вашего приложения. В целом, код очень простого бота из первого конспекта по телеграму, адаптированный под Heroku, будет выглядеть вот так:
Как запустить что-то по расписанию?
Если вы делаете какой-то веб-сервис, который должен обновлять какие-то данные через определённые промежутки времени (например, каждый день в 12:00 или каждый четверг в 17:25), то вы можете настроить стандартную Unix-утилиту cron, которая умеет запускать на сервере какой-то нужный пользователю процесс в тот момент, когда это ему необходимо.
Есть и другой консольный редактор, nano, он проще и все команды, которые вы должны выполнить для тех или иных действий, постоянно показываются внизу экрана ("крышечка" означает "Ctrl"):
Однако он не установлен по умолчанию во всех дистрибутивах, и, возможно, его придётся установить самостоятельно.
Создать или отредактировать расписание можно вызовом команды crontab -e . В открывшемся окне нужно будет описать в формате cron, что вы хотите, чтобы было сделано, и когда это должно быть сделано. Формат cron подразумевает, что вы напишете минута час день_месяца месяц день_недели команда , а потом -- то, что должно будет запуститься, в том виде, в котором бы вы сами это запускали вручную в командной строке.
Примеры расписания в cron:
Обратите внимание, что к программам нужно писать полный путь, потому что cron ничего не знает про то, какую директорию вы считаете рабочей.
Что делать, если у меня нет денег на покупку сервера? Хостинг программ на серверах сейчас популярен!
Настроить Heroku
Подготовить приложение (приложение)
Поскольку это учебное пособие, используется официальная библиотека git.
Развернуть приложение (приложение)
Создайте приложение на Heroku, чтобы получить исходный код
Когда вы создаете это приложение, также будет создан удаленный git (heroku), связанный с локальной библиотекой.
Вы можете просто проигнорировать синтаксическую ошибку yield from self.wsgi.close () в процессе развертывания.
Убедитесь, что запущен хотя бы один экземпляр:
Доступ к приложению
heroku open
Посмотреть журнал
Я пока не знаю, что читать логи, в конце концов, я только новичок.
Определить Procfile
Procfile - это текстовый файл, расположенный в корневом каталоге приложения (приложения), в котором явно указано, какую команду использовать для запуска приложения.
Содержимое выглядит следующим образом:
В системе Windows также есть файл Procfile.windows. Последующее содержимое будет использовать этот файл для локального запуска службы.
Запускать локально
Перед загрузкой в heroku мы надеемся, что сможем предварительно просмотреть или выполнить другие операции локально.
Поскольку Djaong, используемый в руководстве, использует локальные ресурсы, вам необходимо запуститьcollectstatic
Следующий шаг - запустить
Откройте локальную консоль django
Когда локальный файл изменяется, его необходимо загрузить в удаленную библиотеку, операция следующая
Проверить после завершения
Определить переменные среды
Некоторая наиболее важная информация, такая как пароль и номер учетной записи системного администратора, обычно не отображается напрямую в файле, а считывается из переменных среды, как показано ниже:
Определите переменные окружения heroku (при выигрыше)
Просмотр переменных среды
heroku config
Дополнения (дополнения)
heroku предоставляет большое количество сторонних плагинов, таких как papertrial, которые могут обрабатывать информацию вашего журнала.
база данных
На рынке плагинов имеется большое количество плагинов для баз данных, таких как redis, mongodb, postgres и mysql.
Как бедняк, мы используем бесплатный Postgres в качестве модуля поддержки базы данных, а веб-сайт относительно небольшой и более подходящий.
Читайте также: