【发布时间】:2019-01-13 04:30:48
【问题描述】:
尝试运行
heroku run knex migrate:latest
在 heroku 上使用 node 和 pg 设置数据库,我收到以下错误
Error: ENOENT: no such file or directory, scandir '/app/migrations'
knexfile.js
module.exports = {
development: {
client: 'sqlite3',
connection: {
filename: './db/dnd.sqlite3'
},
useNullAsDefault: true,
migrations: {
directory: './db/migrations'
},
seeds: {
directory: './db/seeds'
}
},
production: {
client: 'pg',
connection: {
database: 'my_db',
user: process.env.USER,
password: process.env.PASSWORD,
DATABASE_URL: process.env.DATABASE_URL,
}
}
};
这是我的 package.json 文件的副本
{
"name": "backend",
"version": "1.0.0",
"description": "backend",
"main": "index.js",
"scripts": {
"test": "(knex migrate:rollback && knex migrate:latest && knex seed:run) && NODE_ENV=test jest --verbose --watch",
"start": "nodemon server.js",
"re": "knex migrate:rollback && knex migrate:latest && knex seed:run"
},
"keywords": [],
"author": "my-name",
"license": "MIT",
"dependencies": {
"bcryptjs": "^2.4.3",
"cors": "^2.8.4",
"express": "^4.16.3",
"helmet": "^3.14.0",
"jsonwebtoken": "^8.3.0",
"knex": "^0.15.2",
"morgan": "^1.9.1",
"pg": "^7.8.0",
"renderer": "^0.1.5",
"sqlite3": "^4.0.3"
},
"devDependencies": {
"coveralls": "^3.0.2",
"enzyme": "^3.7.0",
"enzyme-adapter-react-16": "^1.6.0",
"jest": "^23.6.0",
"mocha": "^5.2.0",
"nodemon": "^1.18.5",
"supertest": "^3.3.0"
},
"jest": {
"testEnvironment": "node",
"testPathIgnorePatterns": [
"/node_modules/",
"<rootDir>/notes/src/__tests__/"
]
}
}
在使用 pg 和 node 并尝试部署到 heroku 之前,有人遇到过这个错误吗?我已经尝试了很多东西,但目前似乎有点碰壁。不知道该怎么办。
【问题讨论】:
-
我在 heroku 上遇到了同样的错误。有人有解决方案吗?像 OP 一样,我的迁移位于名为“db”的文件夹中。如何让 heroku 找到那个文件夹?