【发布时间】:2019-05-04 20:22:33
【问题描述】:
我想将我的节点应用程序部署到应用程序引擎并使用 Cloud sql mysql 和 Sequelize 作为 ORM,但是我在部署时收到以下错误,没有更多信息可以调试。
我的 yaml 是(带有编辑的详细信息):
env: flex
runtime: nodejs
env_variables:
SQL_USER: -
SQL_PASSWORD: -
SQL_DATABASE: -
INSTANCE_CONNECTION_NAME: -
beta_settings:
cloud_sql_instances: -
无法连接到 SQL 数据库:未定义 未捕获的错误 { 文件名: '/app/node_modules/sequelize/lib/dialects/mysql/connection-manager.js', 线:133, 行:19, 消息:'连接 ENOENT /cloudsql/app:europe-west1:db', 类型:'SequelizeConnectionError', 堆: 'SequelizeConnectionError: 在 Promise.tap.then.catch.err 处连接 ENOENT /cloudsql/app:europe-west1:db\n (/app/node_modules/sequelize/lib/dialects/mysql/connection-manager.js:133:19 )\n 在 tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)\n 在 Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:512:31 )\n 在 Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:569:18)\n 在 Promise._settlePromise0 (/app/node_modules/bluebird/js/release/promise.js:614 :10)\n 在 Promise._settlePromises (/app/node_modules/bluebird/js/release/promise.js:690:18)\n 在 _drainQueueStep (/app/node_modules/bluebird/js/release/async.js:138 :12)\n 在 _drainQueue (/app/node_modules/bluebird/js/release/async.js:131:9)\n 在 Async._drainQueues (/app/node_modules/bluebird/js/release/async.js:147 :5)\n 在 Immediate.Async.drainQueues [as _onImmediate] (/app/node_modules/bluebird/js/release/async.js:17:14)\n 在 runCallback(计时器.js:705:18)\n 在 tryOnImmediate (timers.js:676:5)\n 在 processImmediate (timers.js:658:5)', 参数:未定义}
ORM 代码:
const sequelize = new Sequelize(process.env.DB_NAME, process.env.DB_USER, process.env.DB_PASS, {
dialect: 'mysql',
host: '/cloudsql/app:europe-west1:db',
pool: {
max: 5,
min: 0,
acquire: 30000,
idle: 10000
},
dialectOptions: {
socketPath: '/cloudsql/app:europe-west1:db'
},
logging: false
});
【问题讨论】:
标签: mysql node.js google-app-engine sequelize.js google-cloud-sql