【问题标题】:In Laravel migration, using string length larger than 255在 Laravel 迁移中,使用大于 255 的字符串长度
【发布时间】:2018-12-20 02:20:06
【问题描述】:

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

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

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

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

【问题讨论】:

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


【解决方案1】:
  • 是的,这只会更改数据类型,因为数据是兼容的,不需要高级迁移。如果它从 280 变为 255,则需要考虑长度。
  • 不,迁移将更新当前列,因为调用了->change() 方法。
  • 这需要mysql 5.0.3 或更高版本,其中varchar 得到extended to hold more data

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

【讨论】:

    猜你喜欢
    • 2010-10-20
    • 2013-01-21
    • 2011-09-04
    • 2020-06-01
    • 2020-05-03
    • 1970-01-01
    • 2017-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多