Reputation: 866
I have created a Laravel project and I added few table with Migrate. It was working fine. The tables already had data. Now I require another table and I tried to add it with this command:
php artisan make:migration create_books_table
It is working and add files at \database\migrations.... I then added schema at up() function. But when I run the command,
php artisan migrate
It is not working , giving error Base table or view already exists.
Please help. I am very new to laravel. Thanks
Migration code..
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateBooksTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('books', function(Blueprint $table)
{
$table->increments('id');
$table->string('name');
$table->text('description');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('books');
}
}
Upvotes: 10
Views: 26100
Reputation: 1
php artisan migrate:fresh
This command will drop your complete database and reinstall the tables in the migration folder.
Upvotes: 0
Reputation: 401
You need to delete the existing 'books' table in the database;
The table already exists so it wont get created again.
Or if you donot have too much data in the other tables run
php artisan migrate:fresh
This will roll back previous table migrations and re migrate them all
Upvotes: 1
Reputation: 41
create new folder in "database/migrations/" and use the "path" property on migrate , Once the table is migrated, you can move the migration file back to the usual folder.
php artisan migrate --path=/database/migrations/new folder/
Upvotes: 4
Reputation: 13562
Laravel has an own table called migration. It's used to save information about when a table was created so artisan can rollback to another point. If you delete a table manually the entry in the migration table is still there. If you remove all tables in your database and migrate again it should work.
Upvotes: 3