2012-11-23 11 views

Odpowiedz

11

Tak, po prostu włóż ten plik .sql i odeślij go od ciebie klasy migracji.

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

Czy to odnosi się do Doctrine 1.2.? Nie mogę znaleźć tej opcji:/ –

+1

Co jeśli SQL zawiera kilka zapytań podzielonych przez średniki? –

+0

^Działa z wieloma zapytaniami oddzielonymi średnikami w dołączonym pliku SQL (przynajmniej w Symfony 3.x, najprawdopodobniej działa również w Symfony 2.8+ ... po prostu przetestuj). – Sawant

0

Wiem, że to stare pytanie, ale wciąż jest jedynym prawdziwym hitem, gdy go szukałem. Powyższą odpowiedź można nieco poprawić. To prosta sprawa, ale możesz nie myśleć o tym. Jeśli masz plik sql zawierający wiele zapytań podzielonych przez średniki, możesz rozbić zawartość średnika.

<?php 

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

Co będzie, jeśli wystąpi ';' wewnątrz zapytania sql? To może nie być bezpieczne. Może być "; \ n" powinno być lepiej. – luchaninov

+0

Nie ma takiej potrzeby, ponieważ to ('$ this-> addSql (file_get_contents (__ DIR__. '/ /sql-dump.sql'));)) działa w przypadku wielu zapytań oddzielonych średnikami. – Sawant

Powiązane problemy