簡體   English   中英

在 Heroku 上運行 Knex 遷移時出現“錯誤:自簽名證書”

[英]'Error: Self-signed Certificate' When Running Knex Migrations on Heroku

更新#1

不幸的是,我找不到使用 postgrator 解決問題時的屏幕截圖。 我最終使用 knex 嘗試連接到 heroku。

但是,當我運行“heroku 運行 npm 運行遷移”時,我遇到了以下問題:

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 }
};`

knex 遷移:

`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')
};`

在我學習如何使用這個平台時,讓我知道我是否應該以不同的方式呈現這些信息、添加或刪除文件。 謝謝!

我最終創建了一個 knex 遷移,並能夠在 heroku 上驗證我的數據庫。

不過,我確實必須制作一個使用 postgres 運行種子的“seed:live”腳本。 例如: "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

但現在它起作用了!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM