Laravel 的上下迁移方法是如何工作的?

Dee*_*ven 6 php database-migration laravel

在这段代码中,表是在 up 方法中创建的,并在 down() 方法中删除。当我运行迁移时,表被创建但没有被删除。我可以通过什么方式触发 down 方法,以便更好地了解这两种方法的工作原理?

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateFlightsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('flights', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name');
            $table->string('airline');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::drop('flights');
    }
}
Run Code Online (Sandbox Code Playgroud)

mik*_*ols 11

在你的例子中:

php artisan migrate将运行您的up()方法。

php artisan migrate:rollback将运行您的down()方法。

阅读优秀的文档:https : //laravel.com/docs/5.7/migrations#migration-structure


yos*_*ber 7

你应该添加dropIfExists而不是drop

如果您只想删除特定的迁移文件,您应该在命令中编写代码,如下所示:

php artisan migrate:rollback --path=\database\migrations\flights.php
Run Code Online (Sandbox Code Playgroud)