【问题标题】:Is it possible to generate knex seed files from a database dump?是否可以从数据库转储生成 knex 种子文件?
【发布时间】:2018-03-06 14:52:52
【问题描述】:

就我而言,我使用的是 mysql。但是,我正在寻找从当前运行的数据库或数据库转储生成 knex 种子文件的通用解决方案。

我可以something like:

exports.seed = function(knex, Promise) {
    var sql = fs.readFileSync('./data/workbench.sql').toString();
    return knex.raw('DROP DATABASE workbench')
       .then(() => knex.raw('CREATE DATABASE workbench'))
       .then(() => knex.raw(sql))
};

但这并不理想......

【问题讨论】:

  • 如果knex.raw(sql) 在某些情况下不会引起问题,我会感到惊讶。无论如何,如果它真的有效(还有更大的转储)我想它也很好。

标签: mysql database postgresql migration knex.js


【解决方案1】:

AFAIK node-postgresql 驱动程序不支持在一个字符串中传递多个语句。

当我需要从节点代码的文件中恢复转储时,我正在调用 shell 命令(使用 shelljs)。

【讨论】:

  • 如果您在连接对象中添加{ multipleStatements: true },您将传递 Knex 实例,它将允许多个语句并且不会引发解析错误。
  • 是的,用mysql应该没问题。当我写答案时,我不知何故错过了mysql标签。
猜你喜欢
  • 1970-01-01
  • 2010-09-15
  • 2010-11-13
  • 2023-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-03
  • 1970-01-01
相关资源
最近更新 更多