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

时间:2017-03-03 10:44:39

标签: mysql laravel laravel-5 laravel-5.2 laravel-5.1

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

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

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

但是,它似乎没有重新安排专栏。

为什么不,我该如何解决这个问题?

3 个答案:

答案 0 :(得分:3)

无法在Laravel Schema API中看到任何可以重新排列列的内容。您最好的选择是使用原始SQL语句,如下所示。

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

答案 1 :(得分:2)

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

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"); 
}

答案 2 :(得分:0)

首先运行以下工匠命令

collect

其中col_name是要重新排序的列的名称,如果是表的名称,则为table_name

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

php artisan make:migration reorganize_order_of_column_<col_name> --table=<table_name>
  • table_name是您要修改的表的名称
  • col_name是您要重新排序的列的名称
  • col_description是列的类型和长度,如VARCHAR(5),DATE
  • second_col_name是我们要重新排序的第二列的名称