Сохранение учетных данных для развертывания приложения Node.js в Heroku - PullRequest
0 голосов
/ 08 июля 2020

В настоящее время я изучаю Node.js (с Express, Postgres, Sequelize), и у меня есть очень простое (API) приложение, работающее локально (оно работает, пробовал с Postman). Теперь я хочу развернуть его на Heroku. У меня есть базовые знания c Heroku, поскольку я использовал Rails в прошлом, но я застрял в некоторых вещах, которые Rails обрабатывает за кулисами.

Я настроил файл config. js с некоторыми производственными учетными данными, созданными при запуске npx sequelize-cli init, я обновил свои локальные настройки (это работает!), но что мне нужно добавить в качестве моих производственных учетных данных? Нужно ли мне предоставлять их самостоятельно? Или они предоставлены Heroku?

Обратите внимание - я уже настроил свой конвейер и приложение, а также Postgres на Heroku, но при попытке подключиться к моему приложению через cli, например heroku run bash --app name-of-my-app и при запуске npx sequelize-cli db:create возникает следующая ошибка:

Loaded configuration file "config/config.js".
Using environment "production".
TypeError: Cannot read property 'replace' of undefined
    at Object.removeTicks (/app/node_modules/sequelize/lib/utils.js:347:12)
    at Object.quoteIdentifier (/app/node_modules/sequelize/lib/dialects/abstract/query-generator/helpers/quote.js:50:35)
    at PostgresQueryGenerator.quoteIdentifier (/app/node_modules/sequelize/lib/dialects/abstract/query-generator.js:891:24)
    at getCreateDatabaseQuery (/app/node_modules/sequelize-cli/lib/commands/database.js:77:50)
    at Object.exports.handler (/app/node_modules/sequelize-cli/lib/commands/database.js:45:17)

Дополнительные примечания:

  • Я использую Node 14.0.0 и продолжаю 6.3.0
  • Я добавил "engines": { "node": "14.x" } в свой package.json
  • У меня нет файла proc, поскольку Heroku заявляет, что он больше не нужен
  • Моя точка входа в приложение: app.js

1 Ответ

0 голосов
/ 09 июля 2020

Помещаем это здесь, на случай, если у кого-то еще возникнут похожие проблемы:

Только что понял, на самом деле это довольно просто, но меня немного смутила установка config.js по умолчанию, предоставляемая при запуске npx sequelize-cli init.

вот как выглядят мои производственные настройки:

  production: {
    use_env_variable: 'DATABASE_URL',
    dialect: 'postgres'
  }
...