在Laravel迁移中,使用大于255的字符串长度

时间:2018-07-12 00:09:03

标签: mysql laravel migration laravel-5.6 laravel-migrations

我有一个正在生产的应用程序,我需要将字符串列的长度更改为280(默认值为255)。

  • 将其更改为字符串到280是否安全?

  • 在我的本地环境中,使用MySQLWorkbench,string列显示为VARCHAR(255)-我从MySQLWorkbench将其编辑为VARCHAR(280),在我的数据库中它似乎可以这样工作本地,但是在生产环境中这样做是安全的,还是应该使用这种迁移方式(模式构建器):

    Schema::table('posts', function ($table) {
      $table->string('text', 280)->change();
    });
    
  • 迁移方法也不会删除现有行,对吗?

1 个答案:

答案 0 :(得分:2)

  • 是的,这将仅更改数据类型,因为数据兼容,因此无需高级迁移。如果从280变为255,则需要考虑长度。
  • 否,由于进行了->change()方法调用,因此迁移将更新当前列。
  • 这需要mysql 5.0.3或更高版本,其中varchar获得extended to hold more data

测试迁移的正常过程是将生产数据库导出到本地环境,然后运行迁移并查看会发生什么。