postgrator:迁移 postgresql 数据库时未找到
postgrator: not found while migrating postgresql database
错误:
$ heroku run npm run migrate
Running npm run migrate on ⬢ shelly-moth-73910... up, run.3979 (Free)
> noteful-app-server@1.0.0 migrate /app
> postgrator --config postgrator-config.js
sh: 1: postgrator: not found
npm ERR! code ELIFECYCLE
npm ERR! syscall spawn
npm ERR! file sh
npm ERR! errno ENOENT
npm ERR! noteful-app-server@1.0.0 migrate: `postgrator --config postgrator-config.js`
npm ERR! spawn ENOENT
npm ERR!
npm ERR! Failed at the noteful-app-server@1.0.0 migrate script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /app/.npm/_logs/2020-09-06T07_52_36_217Z-debug.log
postgrator-cli 版本 4.0.0 安装在 repo 上,运行 npm list postgrator-cli
告诉我。但是在我推送到 heroku 之后,就好像 postgrator 不存在一样。 heroku run npm install postgrator-cli
和其他此类命令不会更改,并且 heroku run npm list postgrator-cli
returns:
$ heroku run npm list postgrator-cli
Running npm list postgrator-cli on ⬢ rocky-garden-73910... up, run.7024 (Free)
noteful-app-server@1.0.0 /app
`-- (empty)
这是我的 postgrator-config.js
require('dotenv').config();
module.exports = {
'migrationsDirectory': 'migrations',
'driver': 'pg',
'connectionString':
process.env.NODE_ENV === 'test'
? process.env.TEST_DATABASE_URL
: process.env.DATABASE_URL,
'ssl': !!process.env.SSL,
};
Procfile 包含 web: node src/server.js
我刚遇到同样的错误。
在我的 package.json
中,我发现它在我的 "devDependencies"
中,而不是我的 "dependencies"
。
当我第一次安装它时,我 运行 npm i postgrator-cli -D
,使它成为开发依赖项。当我尝试在没有 -D
的情况下再次安装它时,它什么也没做,所以我 从我的 package.json
.
中删除了它
然后,我运行npm i postgrator-cli
检查了我的package.json
,发现它在我的dependencies
中。我 git 添加、提交并推送到 heroku,然后我 运行 heroku run npm run migrate
- 它成功了!
错误:
$ heroku run npm run migrate
Running npm run migrate on ⬢ shelly-moth-73910... up, run.3979 (Free)
> noteful-app-server@1.0.0 migrate /app
> postgrator --config postgrator-config.js
sh: 1: postgrator: not found
npm ERR! code ELIFECYCLE
npm ERR! syscall spawn
npm ERR! file sh
npm ERR! errno ENOENT
npm ERR! noteful-app-server@1.0.0 migrate: `postgrator --config postgrator-config.js`
npm ERR! spawn ENOENT
npm ERR!
npm ERR! Failed at the noteful-app-server@1.0.0 migrate script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /app/.npm/_logs/2020-09-06T07_52_36_217Z-debug.log
postgrator-cli 版本 4.0.0 安装在 repo 上,运行 npm list postgrator-cli
告诉我。但是在我推送到 heroku 之后,就好像 postgrator 不存在一样。 heroku run npm install postgrator-cli
和其他此类命令不会更改,并且 heroku run npm list postgrator-cli
returns:
$ heroku run npm list postgrator-cli
Running npm list postgrator-cli on ⬢ rocky-garden-73910... up, run.7024 (Free)
noteful-app-server@1.0.0 /app
`-- (empty)
这是我的 postgrator-config.js
require('dotenv').config();
module.exports = {
'migrationsDirectory': 'migrations',
'driver': 'pg',
'connectionString':
process.env.NODE_ENV === 'test'
? process.env.TEST_DATABASE_URL
: process.env.DATABASE_URL,
'ssl': !!process.env.SSL,
};
Procfile 包含 web: node src/server.js
我刚遇到同样的错误。
在我的 package.json
中,我发现它在我的 "devDependencies"
中,而不是我的 "dependencies"
。
当我第一次安装它时,我 运行 npm i postgrator-cli -D
,使它成为开发依赖项。当我尝试在没有 -D
的情况下再次安装它时,它什么也没做,所以我 从我的 package.json
.
然后,我运行npm i postgrator-cli
检查了我的package.json
,发现它在我的dependencies
中。我 git 添加、提交并推送到 heroku,然后我 运行 heroku run npm run migrate
- 它成功了!