重新排列 Laravel 迁移文件中的列

Rearrange columns in a Laravel migration file

如何为 MySQL 数据库重新安排 Laravel 迁移文件中的列?

到目前为止我有以下内容:

$table->date('foo')->after('bar')->change();

不过好像并没有重新排列栏目。

为什么不能,我该如何解决?

试试这个,希望它能帮助您找到正确的解决方案:

public function up()
{
    DB::statement("ALTER TABLE example MODIFY COLUMN foo DATE AFTER bar");
}

public function down()
{
    DB::statement("ALTER TABLE example MODIFY COLUMN foo DATE AFTER bar"); 
}

在 Laravel 架构 API 中看不到任何允许您重新排列列的内容。您最好的选择是使用原始 SQL 语句,如下所示。

 DB::statement("ALTER TABLE table_name MODIFY COLUMN col_name col_definition AFTER another_col");

首先 运行 遵循 artisan 命令

php artisan make:migration reorganize_order_of_column_<col_name> --table=<table_name>

其中 col_name 是您要重新排序的列的名称,table_name 如果您的 table

然后它将在迁移文件夹中生成新文件,然后按以下函数更新该文件

public function up()
    {
        DB::statement("ALTER TABLE <table_name> MODIFY COLUMN <col_name> <col_description> AFTER <second_col_name>");

    }

    public function down()
    {
        DB::statement("ALTER TABLE <table_name> MODIFY COLUMN <col_name> <col_description> AFTER <second_col_name>");
    }
  • table_name 是您要修改的 table 的名称
  • col_name 是您要重新排序的列的名称
  • col_description 是列的类型和长度,如 VARCHAR(5),DATE
  • second_col_name 是我们要重新排序的第二列的名称