2017-09-25 8 views
1

私の場合、私はmysqlを使用しています。しかし、私は現在実行中のデータベースかデータベースダンプのどちらかからKnexシードファイルを生成するための一般的な解決策を探しています。データベースダンプからknex seedファイルを生成することは可能ですか?

私は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)) 
}; 

が、それは...

+0

'knex.raw(sql)'が問題を引き起こさない場合は、私は驚くでしょう。とにかくそれが実際に(より大きいダンプと)働くならば、私はそのあまりにも良いと思う。 –

答えて

0

私の知る限りnode-postgresqlドライバが1つの文字列に複数の文を渡してサポートしていない理想的ではないのです。

ノードコードからファイルからダンプを復元する必要があるときにシェルコマンド(shelljsを使用)を呼び出しています。

+0

接続オブジェクトに '{multipleStatements:true}'を追加すると、Knexインスタンスが渡されます。これはmultipleStatementsを許可し、解析エラーをスローしません。 –

+0

ええ、mysqlでうまくいくはずです。私が答えを書いたとき、私は何とかmysqlタグを見逃しました。 –

関連する問題