我正在尝试将列类型从double(8,2)
修改为varchar
。
由于如文档中所述,它不允许更改double
,所以我尝试使用raw
语句。
public function up()
{
DB::statement('ALTER TABLE dmf_product_match_unmatches MODIFY s_price VARCHAR(191)');
DB::statement('ALTER TABLE dmf_product_match_unmatches MODIFY r_price VARCHAR(191)');
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//
}
所以我的问题是,在down
方法中,我需要提到什么?
如果您不在down方法中编写代码,那么在回滚时s_price和r_price将在模式中具有VARCHAR(191(,而不是双(8,2(。
当您运行时,下面的down((方法将把s_price和r_price恢复为DOUBLE(8,2(
php手工迁移:回滚
public function down()
{
DB::statement('ALTER TABLE dmf_product_match_unmatches MODIFY s_price DOUBLE(8,2)');
DB::statement('ALTER TABLE dmf_product_match_unmatches MODIFY r_price DOUBLE(8,2)');
}