laravel 迁移更改列类型 double 为 string : down 函数

laravel migration change column type double to string : down function

我正在尝试将列类型从 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) 而不是 double(8,2)。

当您 运行

时,下面的 down() 方法会将 s_price 和 r_price 恢复为 DOUBLE(8,2)

php artisan migrate:rollback

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