我使用gulp-shell
执行pg_dump
命令来创建postgres数据库的简单转储。命令gulp postgres-dump
将成功创建转储,但有时在输入密码并挂起一段时间后会抛出以下错误。
events.js:85
throw er; // Unhandled 'error' event
^
Error: write EPIPE
at exports._errnoException (util.js:746:11)
at WriteWrap.afterWrite (net.js:775:14)
这是我的(简体)gulpfile.js
:
var gulp = require('gulp'),
plugins = require('gulp-load-plugins')();
plugins.shell = require('gulp-shell');
var dbDumpPath = 'db_dumps/';
/**
* Create postgres dump of the database
*/
gulp.task('postgres-dump', function() {
return gulp.src('*.js', {read: false})
.pipe(plugins.shell([
'pg_dump database_name > ' + dbDumpPath +'database_bak.sql -h example.com -U databaseuser'
]));
});
我可以在命令行中运行pg_dump
命令而不会出现问题。为了清楚起见,即使有时会发生错误,也会发生数据库转储。
我如何纠正此错误?
答案 0 :(得分:1)
再次阅读gulp-shell docs,我决定尝试速记版本。最终工作并没有抛出任何错误。
gulp.task('postgres-dump', plugins.shell.task([
'pg_dump database_name > ' + dbDumpPath +'database_bak.sql -h example.com -U databaseuser'
]));