В Части 1 мы подготовили наш проект к процессу родов. А теперь пора перейти к Heroku.

Зарегистрируйте учетную запись, если вы еще этого не сделали. Базовые учетные записи бесплатны с ограничениями на использование, поэтому выбирайте с умом. Вам нужно будет создать новое приложение. Пока не беспокойтесь о части базы данных.

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

Вы можете просто подключить свое приложение к Github, но в Heroku Cli есть множество удобных инструментов, которые я собираюсь использовать в ближайшее время, так что давайте установим его. И создайте открытый ключ SSH. Хотел бы я провести вас через это, но я сделал это несколько месяцев назад и забыл. Не обращайте внимания на ссылки «клонировать репозиторий» на этом изображении, так как у нас еще нет репозитория Heroku. Скоро скоро!

Помните те process.env переменные из части 1? Мы собираемся увидеть их в действии. На Heroku нажмите вкладку «Настройки» на главной странице приложения, а затем «Показать конфигурационные переменные». Вы увидите DATABASE_URL, заполненный для вас в качестве первого ключа, с вашей новой строкой подключения к базе данных в качестве значения. Вам нужно будет добавить сюда другие переменные process.env (например, SESSION_SECRET), поскольку файл .env не был развернут в Heroku.

Затем давайте настроим соединение git с Heroku. Перейдите в корневую папку репозитория вашего проекта, если вы еще не там, и используйте эту волшебную команду, заменив «your-weird-appname» своим новым именем приложения heroku:

heroku git:remote -a your-weird-appname

Поздравляю! В дополнение к вашей обычной удаленной ветке на Github теперь у вас есть удаленная ветка на Heroku. Убедитесь, что вы находитесь в своей локальной основной ветке, и она чистая и обновленная. Следующий шаг очень простой:

git push heroku master

Это занимает больше времени, чем обычный git push, потому что происходит этап сборки. Если вы получите сообщение «Сборка успешна» в конце стены текста, ваше приложение может быть готово, но любые функции базы данных все равно нужно будет настроить. Введите heroku open в командной строке, и откроется окно браузера. Если вы видите целевую страницу - отлично! Если нет, вернитесь в командную строку и введите heroku logs, которые имеют удобную цветовую кодировку:

По сути, именно так я исправил все те мелочи, которые мешали моему базовому сайту работать после развертывания. Но вы здесь не для базовых. Вы здесь, потому что ваша база данных является источником жизненной силы вашего приложения. Пойдем дальше.

Вернувшись на Heroku, перейдите на вкладку ресурсов. Перейдите в раздел «надстройки» и введите «Postgres», чтобы быстро найти надстройку базы данных Heroku Postgres. Добавьте подходящий тариф по вашей цене (хобби бесплатное).

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

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

Мы собираемся заняться чем-нибудь веселым. Мы собираемся открыть терминал bash ВНУТРИ каталога нашего проекта на Heroku. Введите heroku run bash в свой терминал. Ваша обычная (возможно, взорванная) командная строка исчезнет и будет заменена старой, знакомой $. Осмотритесь, а затем перейдите в папку, содержащую ваш schema.sql. Мы собираемся создать сценарий bash, который загружает ваш schema.sql в вашу базу данных heroku. Независимо от того, хотите ли вы ввести это прямо в командную строку или создать сценарий, зависит от вас. Я просто скажу вам, что вводить, и помните, что вы заменяете host, username, db и password из значений на этой вкладке View Credentials, и поэтому ваш сценарий будет выглядеть намного длиннее, чем Вот этот.

psql -h host -U username -d db -w password < schema.sql

Вы можете отказаться от флага -w, и вам будет предложено ввести пароль после нажатия клавиши ввода. Я сделал это, потому что heroku bash не препятствует переносу текста поверх командной строки при вводе длинной строки, и это становится трудно читать. Если все прошло правильно, теперь у вас есть таблицы и столбцы в вашей базе данных.

Если у вас есть Postico, давайте настроим его сейчас, чтобы упростить отслеживание нашего успеха. На экране ввода нажмите «Новое избранное».

Дайте ему любой псевдоним, оставьте порт 5432, а теперь вернитесь в раздел «Просмотр учетных данных» на Heroku и скопируйте хост, пользователя, базу данных и пароль в эти поля. Нажмите «Подключиться», и теперь вы можете просматривать свою базу данных так же, как вы можете получить доступ к своим локальным. Если файл схемы был скопирован правильно, теперь у вас должны быть видимы некоторые таблицы. Если вам нужно заполнить таблицы данными для работы вашего приложения, запустите тот же сценарий bash, что и выше, но замените «schema.sql» исходным файлом. Если вы используете connect-pg-simple, вам нужно будет добавить этот дополнительный скрипт из документации, который загружает таблицу из ваших node_modules:

psql -h host -U username -d database -w password < node_modules/connect-pg-simple/table.sql

Я сомневался, что это сработает, но сработало. Оглядываясь назад, это имеет смысл. Heroku создает ваш проект из вашей файловой системы и вашего package.json, поэтому, хотя ваш .gitignore обычно (должен) исключать node_modules, они перестраиваются из версий, перечисленных в вашем package.json.

Момент истины ... перейдите на новый блестящий URL вашего проекта. Сделайте что-нибудь на своем сайте, что может привести к вводу или изменению данных. Перейдите в Postico и щелкните стрелку обновления. Смотрите, как данные появляются волшебным образом. Танцуй.

Часть 3, в конечном итоге, будет посвящена миграции базы данных. Посмотрите Часть 1, если вы ее пропустили. Приветствуются добрые, конструктивные отзывы и исправления. С любовью моим товарищам по программированию!