代码之家  ›  专栏  ›  技术社区  ›  senty

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

  •  2
  • senty  · 技术社区  · 6 年前

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

    • 把它改成字符串280安全吗?

    • 在本地,使用mysqlWorkbench, string 列显示为 VARCHAR(255) -我把它编辑成 VARCHAR(280) 在mysqlWorkbench中,它在本地似乎是这样工作的,但是在生产环境中这样做是安全的,还是应该像这样使用迁移方式(模式生成器):

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

    1 回复  |  直到 6 年前
        1
  •  2
  •   Martin Henriksen    6 年前
    • 是的,这只会更改数据类型,因为数据是兼容的,不需要高级迁移。如果从280到255,您需要考虑长度。
    • 否,迁移将更新当前列,因为 ->change() 方法调用。
    • 这需要 mysql 5.0.3或以上,其中 varchar 得到了 extended to hold more data .

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

    推荐文章