2012-11-23 14 views

答えて

11

はい、その.sqlファイルを入れて、移行クラスから参照してください。

$this->addSql(file_get_contents(__DIR__ . '/sql-dump.sql')); 
+1

これはDoctrine 1.2を参照していますか?このオプションが見つかりません:/ –

+1

SQLに複数のクエリがセミコロンで分割されている場合はどうなりますか? –

+0

^複数のクエリが含まれているSQLファイルでセミコロンで区切られています(少なくともSymfony 3.xでは、おそらくSymfony 2.8+でも動作します)。 – Sawant

0

私はそれが古い質問ですけど、私はそれをググとき、それはまだ唯一の本当のヒットです。上記の答えは少し改善することができます。それは簡単なことですが、あなたはそれを考えないかもしれません。セミコロンで区切られた複数のクエリを含むSQLファイルがある場合は、セミコロンでその内容を分解できます。

<?php 

foreach (explode(';', file_get_contents(__DIR__ . '/sql-dump.sql')) as $sql) { 
    $this->addSql($sql); 
} 
+1

SQLクエリの中に ';'がある場合はどうなりますか?安全ではないかもしれません。 "; \ n"が良いはずです。 – luchaninov

+0

これは必要ありません。これは、 '$ this-> addSql(file_get_contents(__ DIR__。 '/sql-dump.sql'));')はセミコロンで区切られた複数のクエリの場合に有効です。 – Sawant

関連する問題