首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Heroku上运行Knex迁移时出现“'Error: Self-signed Certificate”

在Heroku上运行Knex迁移时出现“'Error: Self-signed Certificate”
EN

Stack Overflow用户
提问于 2021-05-17 05:56:48
回答 1查看 187关注 0票数 2

更新#1

不幸的是,我找不到我使用postgrator解决这个问题时的截图。我最终选择了knex,转而尝试连接heroku。

然而,当我运行'heroku run npm run migrate‘时,我遇到了以下问题:

代码语言:javascript
复制
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

代码语言:javascript
复制
{
"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

代码语言:javascript
复制
`const dotenv = require('dotenv')
dotenv.config()

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

knex迁移:

代码语言:javascript
复制
`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')
};`

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

EN

回答 1

Stack Overflow用户

发布于 2021-05-26 07:11:01

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

我确实需要编写一个"seed:live“脚本,使用postgres运行seed。例如:"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

但现在它起作用了!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67561889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档