重新排列 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 是我们要重新排序的第二列的名称
如何为 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 是我们要重新排序的第二列的名称