在 Heroku 上运行 Knex 迁移时出现“错误:自签名证书”

时间:2021-05-16 21:56:47

标签: heroku knex.js

更新 #1

不幸的是,我找不到使用 postgrator 处理该问题时的屏幕截图。我最终使用 knex 尝试连接到 heroku。

但是,当我运行“heroku run npm run migrate”时,我遇到了以下问题:

heroku run knex migrate:latest
Running knex migrate:latest on ⬢ stormy-hollows-73700... up, 
run.6282 (Free)
Error: self signed certificate
at TLSSocket.onConnectSecure (_tls_wrap.js:1507:34)
at TLSSocket.emit (events.js:376:20)
at TLSSocket._finishInit (_tls_wrap.js:932:8)
at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:706:12)

package.json

{
"name": "express-boilerplate",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"migrate": "knex migrate:latest",
"create-migration": "knex migrate:make $1",
"migrate:test": "env NODE_ENV=test npm run migrate",
"seed": "psql -d chirp-app -f seeds/seed.posts.sql; psql -d chirp- 
app -f seeds/seed.replies.sql",
"test": "mocha --require test/setup.js",
"dev": "nodemon src/server.js",
"start": "node src/server.js",
"predeploy": "npm audit",
"deploy": "git push heroku main"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"cors": "^2.8.5",
"dotenv": "^8.2.0",
"express": "^4.17.1",
"helmet": "^4.2.0",
"knex": "^0.95.4",
"morgan": "^1.10.0",
"pg": "^8.0.3",
"postgrator-cli": "^3.3.0",
"uuid": "^8.3.2",
"xss": "^1.0.8"
},
"devDependencies": {
"chai": "^4.2.0",
"mocha": "^8.2.1",
"nodemon": "^2.0.7",
"supertest": "^6.0.1"
} 
}

knexfile.js

`const dotenv = require('dotenv')
dotenv.config()

module.exports = {
client: 'pg',
connection: process.env.DATABASE_URL,
ssl: { rejectUnauthorized: false }
};`

膝关节迁移:

`exports.up = function (knex) {
return Promise.all(
[knex.schema.createTable('posts', table => {
table.string('id', 36)
table.string('title', 50)
table.string('content')
}),
knex.schema.createTable('replies', table => {
table.string('id', 36)
table.string('title', 50)
table.string('postid', 36)
})]
)
};

exports.down = function (knex) {
knex.schem.dropTable('posts')
knex.schema.dropTable('replies')
};`

让我知道我是否应该以不同的方式呈现此信息,在我学习如何使用此平台时添加或删除文件。 谢谢!

1 个答案:

答案 0 :(得分:0)

我最终创建了 knex 迁移,并且能够在 heroku 上验证我的数据库。

我确实必须制作一个“seed:live”脚本,该脚本使用 postgres 运行种子。 前任: "scripts": {..."seed:live": "heroku pg:psql -f seeds/seed.posts.sql; heroku pg:psql -f seeds/seed.replies.sql"...}

验证数据库的种子:

heroku pg:psql -f seeds/seed.posts.sql; heroku pg:psql -f seeds/seed.replies.sql --> Connecting to postgresql-cubed-11974 INSERT 0 3 --> Connecting to postgresql-cubed-11974 INSERT 0 2

但现在它起作用了!