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