dotelauv682684 2016-07-10 10:15
浏览 289
已采纳

在Laravel迁移中更改列类型的最佳方法是什么?

I have a User table in my DB:

        $table->increments('id');
        $table->string('fullName');
        $table->string('email')->unique();
        $table->string('password', 50);
        $table->enum('role',['boss','employee','customer'])->default('customer');
        $table->rememberToken();
        $table->timestamps();

I need to change 'role' column type to 'text' and after that, run the new migration in Laravel. If I want to have no effect on previous data, what is the best way to do this.

  • 写回答

2条回答 默认 最新

  • dontoften8899 2016-07-10 10:27
    关注

    You could try to:

    1. Create a new text column named "roleTemp"
    2. Run a query to set this column for each record - based on the "role" column
    3. Remove the "role" column
    4. Rename "roleTemp" to "role"

    Now simply change your database schema as is:

    $table->increments('id');
    $table->string('fullName');
    $table->string('email')->unique();
    $table->string('password', 50);
    $table->string('role');
    $table->rememberToken();
    $table->timestamps();
    

    Basically you duplicate the role values to a (temporarily) column and rename it. At least it is safe and won't take a lot of time.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么