Laravel 迁移:删除特定表

Posted

技术标签:

【中文标题】Laravel 迁移:删除特定表【英文标题】:Laravel migrations: dropping a specific table 【发布时间】:2016-09-11 23:11:46 【问题描述】:

有什么方法/laravel-command 可以从生产服务器中删除特定的表吗?

【问题讨论】:

【参考方案1】:

设置迁移。

运行此命令以设置迁移:

php artisan make:migration drop_my_table

然后您可以像这样构建您的迁移:

<?php

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

class DropMyTable extends Migration

    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    
        // drop the table
        Schema::dropIfExists('my_table');
    

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    
        // create the table
        Schema::create('my_table', function (Blueprint $table) 
            $table->increments('id');
            // .. other columns
            $table->timestamps();
        );
    

您当然可以直接删除而不检查是否存在:

Schema::drop('my_table');

在此处的文档中进一步阅读:

https://laravel.com/docs/5.2/migrations#writing-migrations

您可能还必须考虑删除任何现有的外键/索引,例如,如果您想删除主键:

public function up()

    Schema::table('my_table', function ($table) 
        $table->dropPrimary('my_table_id_primary');
    );

    Schema::dropIfExists('my_table');

更多关于删除索引等的文档:

https://laravel.com/docs/5.2/migrations#dropping-indexes

【讨论】:

以上是关于Laravel 迁移:删除特定表的主要内容,如果未能解决你的问题,请参考以下文章

如何在 laravel 中运行特定迁移 [重复]

再次迁移特定表 laravel

在 laravel 中迁移特定表

如何迁移:在 laravel 5 中回滚特定表

Laravel 删除表,迁移不回滚

特定表迁移laravel中的错误