Browse Source

Merge pull request #1389 from Anahkiasen/feature/migrate_rebuild

Added migrate:rebuild command to clean and reconstruct the database
Taylor Otwell 12 years ago
parent
commit
4d0bc9e251

+ 19 - 0
laravel/cli/tasks/migrate/migrator.php

@@ -139,6 +139,25 @@ class Migrator extends Task {
 		while ($this->rollback()) {};
 		while ($this->rollback()) {};
 	}
 	}
 
 
+	/**
+	 * Reset the database to pristine state and run all migrations
+	 *
+	 * @param  array  $arguments
+	 * @return void
+	 */
+	public function rebuild()
+	{
+		// Clean the database
+		$this->reset();
+
+		echo PHP_EOL;
+
+		// Re-run all migrations
+		$this->migrate();
+
+		echo 'The database was successfully rebuilt'.PHP_EOL;
+	}
+
 	/**
 	/**
 	 * Install the database tables used by the migration system.
 	 * Install the database tables used by the migration system.
 	 *
 	 *

+ 6 - 2
laravel/documentation/database/migrations.md

@@ -33,7 +33,7 @@ You can easily create migrations through Laravel's "Artisan" CLI. It looks like
 
 
 Now, check your **application/migrations** folder. You should see your brand new migration! Notice that it also contains a timestamp. This allows Laravel to run your migrations in the correct order.
 Now, check your **application/migrations** folder. You should see your brand new migration! Notice that it also contains a timestamp. This allows Laravel to run your migrations in the correct order.
 
 
-You may also create migrations for a bundle. 
+You may also create migrations for a bundle.
 
 
 **Creating a migration for a bundle:**
 **Creating a migration for a bundle:**
 
 
@@ -69,4 +69,8 @@ When you roll back a migration, Laravel rolls back the entire migration "operati
 
 
 **Roll back all migrations that have ever run:**
 **Roll back all migrations that have ever run:**
 
 
-	php artisan migrate:reset
+	php artisan migrate:reset
+
+**Roll back everything and run all migrations again:**
+
+	php artisan migrate:rebuild