laravel迁移将列类型double更改为字符串:down函数



我正在尝试将列类型从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)');
}

最新更新