Laravel 通过迁移添加新表

问题描述 投票:0回答:4

我创建了一个 Laravel 项目,并使用 Migrate 添加了一些表。 一切正常。表已经有数据了。现在我需要另一个表,我尝试使用以下命令添加它:

php artisan make:migration create_books_table

它正在工作并在 \database\migrations 添加文件...... 然后我在 up() 函数中添加了架构。但是当我运行命令时,

php artisan migrate

它不起作用,给出错误基表或视图已存在。

请帮忙。我对 Laravel 很陌生。谢谢

迁移代码..

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

}
php mysql laravel migration
4个回答
4
投票

在“database/migrations/”中创建新文件夹,并在 migrate 上使用“path”属性,表迁移后,您可以将迁移文件移回常用文件夹。

php artisan migrate --path=/database/migrations/new folder/ 

3
投票

Laravel 有一个自己的表,称为迁移。它用于保存有关表创建时间的信息,以便工匠可以回滚到另一个点。如果您手动删除表,迁移表中的条目仍然存在。如果您删除数据库中的所有表并再次迁移,它应该可以工作。


1
投票

您需要删除数据库中现有的“books”表;

该表已存在,因此不会再次创建。

或者如果您在其他表中没有太多数据运行

php artisan migrate:fresh

这将回滚之前的表迁移并重新迁移所有表


0
投票

php artisan 迁移:新鲜

此命令将删除所有数据库并重新安装迁移文件夹中的表

© www.soinside.com 2019 - 2024. All rights reserved.