Laravel的上下移植方法如何运作?

时间:2018-03-01 18:40:06

标签: php laravel database-migration

在此代码中,表在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');
    }
}

3 个答案:

答案 0 :(得分:1)

在您的示例中:

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

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

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

答案 1 :(得分:0)

尝试:

public function down()
{
    Schema::dropIfExists('flights');
}

答案 2 :(得分:0)

您应该添加.some()而不是dropIfExists

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

drop