Laravel迁移:删除特定的表

时间:2016-05-16 08:01:06

标签: laravel database-migration

是否有任何方法/ laravel-command从生产服务器中删除特定的表?

2 个答案:

答案 0 :(得分:5)

设置迁移。

运行此命令以设置迁移:

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

答案 1 :(得分:0)

您可以使用php artisan migrate:rollback --help查看是否有删除scpecific表的命令。

这是我的输出: enter image description here

正如您所看到的,laravel中没有删除特定表的选项。还没。 CMIW。另一种方法是手动或使用phpmyadmin删除它们。希望它有所帮助