13

移行クラスで .sql ファイルを呼び出すことはできますか?

そのトピックに関するものは何も見つかりませんでした。

4

4 に答える 4

1

私はそれが古い質問であることを知っていますが、私がグーグルで検索したとき、それはまだ唯一の本当のヒットです. 上記の答えは少し改善することができます。単純なことですが、思いつかないかもしれません。セミコロンで区切られた複数のクエリを含む sql ファイルがある場合は、セミコロンで内容を展開できます。

<?php

foreach (explode(';', file_get_contents(__DIR__ . '/sql-dump.sql')) as $sql) {
    $this->addSql($sql);
}
于 2016-06-02T23:13:40.150 に答える
0

SQLite を使用していて、セミコロンで区切られた複数のステートメントを含む .sql ファイルを実行したい場合は、次のコードを使用することをお勧めします。

$this->connection->exec(file_get_contents(__DIR__ . '/sql-dump.sql'));

addSql() メソッドを使用すると、Doctrine は query() メソッドを呼び出しますが、これは単一の文字列で複数のステートメントをサポートせず、最初のステートメントのみを実行します。複数のステートメントは、exec() メソッドでのみサポートされています。参照: php.net/manual/en/function.sqlite-query.php

于 2020-01-05T22:11:41.880 に答える