移行クラスで .sql ファイルを呼び出すことはできますか?
そのトピックに関するものは何も見つかりませんでした。
私はそれが古い質問であることを知っていますが、私がグーグルで検索したとき、それはまだ唯一の本当のヒットです. 上記の答えは少し改善することができます。単純なことですが、思いつかないかもしれません。セミコロンで区切られた複数のクエリを含む sql ファイルがある場合は、セミコロンで内容を展開できます。
<?php
foreach (explode(';', file_get_contents(__DIR__ . '/sql-dump.sql')) as $sql) {
$this->addSql($sql);
}
SQLite を使用していて、セミコロンで区切られた複数のステートメントを含む .sql ファイルを実行したい場合は、次のコードを使用することをお勧めします。
$this->connection->exec(file_get_contents(__DIR__ . '/sql-dump.sql'));
addSql() メソッドを使用すると、Doctrine は query() メソッドを呼び出しますが、これは単一の文字列で複数のステートメントをサポートせず、最初のステートメントのみを実行します。複数のステートメントは、exec() メソッドでのみサポートされています。参照: php.net/manual/en/function.sqlite-query.php