1111
1212use Migrate \Migration ;
1313use Migrate \Utils \ArrayUtil ;
14- use SebastianBergmann \GlobalState \RuntimeException ;
1514use Symfony \Component \Config \FileLocator ;
1615use Symfony \Component \Console \Input \InputInterface ;
1716use Symfony \Component \Console \Output \OutputInterface ;
@@ -208,21 +207,25 @@ public function removeFromChangelog(Migration $migration)
208207
209208 /**
210209 * @param Migration $migration
210+ * @param bool $changeLogOnly
211211 */
212- public function executeUpMigration (Migration $ migration )
212+ public function executeUpMigration (Migration $ migration, $ changeLogOnly = false )
213213 {
214214 $ this ->getDb ()->beginTransaction ();
215- $ result = $ this ->getDb ()->exec ($ migration ->getSqlUp ());
216-
217- if ($ result === false ) {
218- // error while executing the migration
219- $ errorInfo = "" ;
220- $ errorInfos = $ this ->getDb ()->errorInfo ();
221- foreach ($ errorInfos as $ line ) {
222- $ errorInfo .= "\n$ line " ;
215+
216+ if ($ changeLogOnly === false ) {
217+ $ result = $ this ->getDb ()->exec ($ migration ->getSqlUp ());
218+
219+ if ($ result === false ) {
220+ // error while executing the migration
221+ $ errorInfo = "" ;
222+ $ errorInfos = $ this ->getDb ()->errorInfo ();
223+ foreach ($ errorInfos as $ line ) {
224+ $ errorInfo .= "\n$ line " ;
225+ }
226+ $ this ->getDb ()->rollBack ();
227+ throw new \RuntimeException ("migration error, some SQL may be wrong \n\nid: {$ migration ->getId ()}\nfile: {$ migration ->getFile ()}\n" . $ errorInfo );
223228 }
224- $ this ->getDb ()->rollBack ();
225- throw new \RuntimeException ("migration error, some SQL may be wrong \n\nid: {$ migration ->getId ()}\nfile: {$ migration ->getFile ()}\n" . $ errorInfo );
226229 }
227230
228231 $ this ->saveToChangelog ($ migration );
@@ -231,21 +234,25 @@ public function executeUpMigration(Migration $migration)
231234
232235 /**
233236 * @param Migration $migration
237+ * @param bool $changeLogOnly
234238 */
235- public function executeDownMigration (Migration $ migration )
239+ public function executeDownMigration (Migration $ migration, $ changeLogOnly = false )
236240 {
237241 $ this ->getDb ()->beginTransaction ();
238- $ result = $ this ->getDb ()->exec ($ migration ->getSqlDown ());
239-
240- if ($ result === false ) {
241- // error while executing the migration
242- $ errorInfo = "" ;
243- $ errorInfos = $ this ->getDb ()->errorInfo ();
244- foreach ($ errorInfos as $ line ) {
245- $ errorInfo .= "\n$ line " ;
242+
243+ if ($ changeLogOnly === false ) {
244+ $ result = $ this ->getDb ()->exec ($ migration ->getSqlDown ());
245+
246+ if ($ result === false ) {
247+ // error while executing the migration
248+ $ errorInfo = "" ;
249+ $ errorInfos = $ this ->getDb ()->errorInfo ();
250+ foreach ($ errorInfos as $ line ) {
251+ $ errorInfo .= "\n$ line " ;
252+ }
253+ $ this ->getDb ()->rollBack ();
254+ throw new \RuntimeException ("migration error, some SQL may be wrong \n\nid: {$ migration ->getId ()}\nfile: {$ migration ->getFile ()}\n" . $ errorInfo );
246255 }
247- $ this ->getDb ()->rollBack ();
248- throw new \RuntimeException ("migration error, some SQL may be wrong \n\nid: {$ migration ->getId ()}\nfile: {$ migration ->getFile ()}\n" . $ errorInfo );
249256 }
250257 $ this ->removeFromChangelog ($ migration );
251258 $ this ->getDb ()->commit ();
0 commit comments