Laravel Add new Table with migrate
Solution 1
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/
Solution 2
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.
Solution 3
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
user3419778
Updated on July 25, 2022Comments
-
user3419778 almost 2 years
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'); } }