如何在gulpfile中将mysqldump与--hex-blob一起使用?

时间:2019-04-03 20:33:11

标签: mysql npm gulp binary

我有一个gulpfile.js。我想转储mysql数据库,但类型为“ varbinary”的问题,所以我想使用arg --hex-blob,因为这是针对此处存在相同问题的其他人的解决方案。

问题在于,使用mysqldump进行的导出看上去与使用phpmyadmin进行的导出不同。 “ varbinary”始终使用MySQL服务器中不存在的“ NOFORMAT_WRAP”功能包装。

mysqldump是npm的最新版本。

谢谢。

使用mysqldump创建的

dump.sql:

INSERT INTO
  `session` (`session_id`) VALUES
  (NOFORMAT_WRAP(
      "##X'316236316d396d683275716834636d6b697035756e6b39766d67'##"
    )

与phpmyadmin相同(这是预期的):

INSERT INTO `session` (`session_id`) VALUES
(0x316236316d396d683275716834636d6b697035756e6b39766d67)

gulpfile.js:

const mysqlDump     = require('mysqldump');

// database dump
gulp.task('dumpDatabase', () => {
    return mysqlDump({
        connection: {
            host: 'localhost',
            user: 'who',
            password: 'pass',
            database: 'test'
        },
        dumpToFile: '../../../database/backup-' + today + '.sql'
    });
});

gulp.task('default', gulp.series('dumpDatabase'));

1 个答案:

答案 0 :(得分:1)

您可以在https://www.npmjs.com/package/mysqldump中获得整个选项列表。

在您的情况下,您需要像这样添加转储选项。

// database dump
gulp.task('dumpDatabase', () => {
    return mysqlDump({
        connection: {
            host: 'localhost',
            user: 'who',
            password: 'pass',
            database: 'test'
        },
        dump: {
            data: {
                format : false
            }
        },
        dumpToFile: '../../../database/backup-' + today + '.sql'
    });
});