diff --git a/src/Illuminate/Database/Migrations/Migration.php b/src/Illuminate/Database/Migrations/Migration.php index 699154c9a614..ac1b9e7f1d0f 100755 --- a/src/Illuminate/Database/Migrations/Migration.php +++ b/src/Illuminate/Database/Migrations/Migration.php @@ -11,6 +11,13 @@ abstract class Migration */ protected $connection; + /** + * Enables, if supported, wrapping the migration within a transaction. + * + * @var bool + */ + public $withinTransaction = true; + /** * Get the migration connection name. * diff --git a/src/Illuminate/Database/Migrations/Migrator.php b/src/Illuminate/Database/Migrations/Migrator.php index 051d8a99bf59..d55046dab47f 100755 --- a/src/Illuminate/Database/Migrations/Migrator.php +++ b/src/Illuminate/Database/Migrations/Migrator.php @@ -361,6 +361,7 @@ protected function runMigration($migration, $method) }; $this->getSchemaGrammar($connection)->supportsSchemaTransactions() + && $migration->withinTransaction ? $connection->transaction($callback) : $callback(); }