2017-03-03 73 views
1

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

到目前为止,我有以下几点:

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

然而,它似乎并没有重新安排列。

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

+0

btw:你需要重新排列列顺序?它在技术上没有区别 –

+0

如果你考虑使用'DB :: raw'你可以做类似'DB :: raw('ALTER TABLE tablename CHANGE COLUMN foo foo date AFTER bar''')' – KuKeC

+0

@MarcinOrlowski对我来说主要问题只是组织。例如,当我浏览PHPMyAdmin中的数据库时,我想看到这个特定的列在他们相关的另一个旁边。否则可能会有很多水平滚动。 –

回答

2

无法看到Laravel架构API任何将让你重新排列列。你最好的选择是使用下面的原始SQL语句。

DB::statement("ALTER TABLE table_name MODIFY COLUMN col_name col_definition AFTER another_col"); 
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"); 
}