【问题标题】:laravel migration change column type double to string : down function [closed]laravel 迁移将列类型 double 更改为字符串:向下函数 [关闭]
【发布时间】:2021-02-04 06:35:47
【问题描述】:

我正在尝试将列类型从 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 方法中没有任何内容,让它为空
  • @RonvanderHeijden 我正在将其他来源的数据导入到我的数据库表中。而这个其他来源对该字段具有各种字符,例如$ 等等。所以
  • @RonvanderHeijden laravel.com/docs/8.x/migrations 检查这个..
  • @RonvanderHeijden 我现在更困惑了......

标签: php mysql laravel laravel-migrations


【解决方案1】:

如果您不会在 down 方法中编写代码,则在回滚时 s_price 和 r_price 在架构中将有 VARCHAR(191) 但不是 double(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)');
}

【讨论】:

    猜你喜欢
    • 2018-06-18
    • 1970-01-01
    • 1970-01-01
    • 2020-06-01
    • 2016-10-09
    • 2020-03-17
    • 1970-01-01
    • 2019-09-18
    • 2016-01-01
    相关资源
    最近更新 更多