2012-11-23 18 views

risposta

11

Sì, basta mettere il file .sql e rimandarlo dalla classe di migrazione.

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

Fa riferimento a Doctrine 1.2.? Non riesco a trovare questa opzione:/ –

+1

Cosa succede se SQL contiene più query divise per punto e virgola? –

+0

^Funziona con più query separate da punti e virgola nel file SQL incluso (almeno in Symfony 3.x, molto probabilmente funziona anche in Symfony 2.8+ ... basta provarlo). – Sawant

0

so che è una vecchia questione, ma è ancora l'unico vero successo quando ho cercato su google per esso. La risposta sopra può essere leggermente migliorata. È una cosa semplice, ma potresti non pensarci. Se si dispone di un file sql che contiene più query divise per punto e virgola, è possibile esplodere il contenuto in punto e virgola.

<?php 

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

Cosa succede se ci sarà ';' all'interno della query sql? Potrebbe non essere sicuro. Potrebbe essere "; \ n" dovrebbe essere migliore. – luchaninov

+0

Non c'è bisogno di questo, in quanto questo ('$ this-> addSql (file_get_contents (__ DIR__. '/sql-dump.sql'));') funziona in caso di più query separate da punti e virgola. – Sawant