首页 > 解决方案 > 将 sequelize-cli 应用程序部署到 heroku DATABASE_URL 问题

问题描述

我正在使用续集迁移。这是我的 config.js:

require('dotenv').config()

module.exports = {
  development: {
    database: process.env.DEV_DATABASE,
    host: process.env.DEV_HOST,
    dialect: 'postgres'
  },
  test: {
    database: process.env.TEST_DATABASE,
    host: process.env.TEST_HOST,
    dialect: 'postgres'
  },
  production: {
    database: process.env.DATABASE_URL,
    dialect: 'postgres'
  },
}

当我部署到 heroku 并运行时:

heroku run npx sequelize-cli db:migrate

我得到错误:

Loaded configuration file "config/config.js".
Using environment "production".

ERROR: connect ECONNREFUSED 127.0.0.1:5432

我已经尝试将我的配置更改为use_env_variable: DATABASE_URL并且我得到了Error reading "config/config.js". Error: ReferenceError: DATABASE_URL is not defined

如果我console.log(process.env.DATABASE_URL)得到类似的东西:

postgres://bczwqcbnwftivi:80bbc89546c0953e0ffd221a950cac249d25d4ef1812127054af7c2f504b2c39@ec2-54-225-205-79.compute-1.amazonaws.com:5432/d8gsvl0n8qilcs

标签: herokusequelize.jssequelize-cli

解决方案


这有效:

{
    "development": {
        "database": "products_api_development",
        "dialect": "postgres"
    },
    "test": {
        "database": "products_api_test",
        "dialect": "postgres"
    },
    "production": {
        "use_env_variable": "DATABASE_URL",
        "dialect": "postgres",
        "dialectOptions": {
            "ssl": true
        }
    }
}

推荐阅读