Laravel Add new Table with migrate

16,468

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

Share:
16,468
user3419778
Author by

user3419778

Updated on July 25, 2022

Comments

  • user3419778
    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');
        }
    
    }