“ php artisan migration”显示“没有任何迁移”

时间:2019-10-02 14:00:55

标签: php laravel laravel-6 artisan-migrate laravel-artisan

我是laravel的新手。 我正在使用laravel版本6。 我已经创建了迁移。 第一次可以很好地运行,但是如果我更改了迁移文件中的某些内容,然后运行php artisan migrate,它将显示nothing to migrate。 我也尝试过php artisan migrate --path,但是它不起作用。 为了使其正常工作,我必须删除迁移文件并再次创建它。 我不想使用php artisan migrate:fresh

我应该怎么做才能只运行一个已更改的迁移文件?

7 个答案:

答案 0 :(得分:3)

运行php artisan migrate时,它将检查迁移表,如果迁移文件夹中没有新文件,则不会显示任何要迁移的内容。

  

如果要回滚上一次迁移。

rollback进行最新的迁移操作,可以使用rollback命令。此命令回滚迁移的最后一个“批”,其中可能包括多个迁移文件:

php artisan migrate:rollback

它将删除最后创建的表。

migrate:reset命令将回滚您应用程序的所有迁移:

php artisan migrate:reset

migrate:fresh命令将删除所有表。

php artisan migrate:fresh

php artisan migrate:fresh --seed

更多信息:document

答案 1 :(得分:2)

非常不可能。最好的解决方法是使用播种器,并在使用php artisan db:seed之后使用php artisan migrate:fresh。您为什么不想使用它?

答案 2 :(得分:2)

如果您有种子数据,则只需执行以下操作:php artisan migration:fresh-seed。它有助于使用种子数据重新迁移您的迁移

答案 3 :(得分:1)

您对迁移机制并不了解。

  

但是,如果我更改了迁移文件中的某些内容,然后运行php artisan migration,则显示没有要迁移的内容

您编写迁移以对数据库进行一些更改,然后运行一次。如果要对数据库进行下一次更新,则需要进行下一次迁移。

在开发过程中,您可以按php artisan migrate:fresh重新运行迁移,但是在生产时,请确保您的迁移满足了您的所有需求。

Laravel在表'migrations'中将有关迁移的信息存储在数据库中。如果要重置某些迁移文件,则可以尝试删除或编辑该表中的某些记录。

答案 4 :(得分:1)

您是否已在迁移表中检查迁移是否已经运行。 如果运行,则将有一行与您的迁移有关。 如果您对旧的迁移进行了更改,那么运行php artisan migration命令将不会反映任何内容,因为它已被迁移。

答案 5 :(得分:0)

您可以做两件事 1.在数据库中,有一个表,称为迁移。从那里删除要迁移的行。那应该在那里。 2.在数据库/迁移/文件夹内创建一个文件夹。并将迁移文件放在文件夹中,然后在命令提示符下运行以下命令:

php artisan migrate:refresh --path=database/migrations/folder

选项2优于选项1。我总是使用它。所以我建议选择2。这应该可行

答案 6 :(得分:0)

对于现有(已经迁移的表)上的每个修改,您都将仅使用修改进行新迁移。如果您有“用户”表迁移2014_10_12_000000_create_users_table,例如:

 Schema::create('users', function (Blueprint $table) {
        $table->bigIncrements('id');
        $table->string('name');
        $table->string('email')->unique();
        $table->string('password');         
        $table->rememberToken();
        $table->timestamps();
    });

,您需要拆分“名称”列,必须php artisan make:migration alter_table_users --table="users"并添加要更改的内容:

Schema::table('users', function (Blueprint $table) {
    $table->renameColumn('name', 'first_name'); // rename column
    $table->string('last_name'); // add new column  });

反向

public function down()
    {
        Schema::table('users', function (Blueprint $table) {
            $table->renameColumn('first_name', 'name');
            $table->dropColumn('last_name');
        });
    }

您不能使用php artisan migrate

文档:https://laravel.com/docs/6.x/migrations#modifying-columns