在 Laravel 迁移中,使用的字符串长度大于 255
In Laravel migration, using string length larger than 255
我有一个生产应用程序,我需要将字符串列的长度更改为 280(因为默认值为 255)。
把字符串改成280安全吗?
在我的本地,使用 MySQLWorkbench,string
列显示为 VARCHAR(255)
- 我从 MySQLWorkbench 将其编辑为 VARCHAR(280)
,它似乎可以工作在我的本地就是这样,但是在生产中这样做是安全的还是我应该像这样使用迁移方式(架构构建器):
Schema::table('posts', function ($table) {
$table->string('text', 280)->change();
});
而且迁移方式不会删除现有行,对吗?
- 是的,这只会更改数据类型,因为数据是兼容的,不需要高级迁移。如果从 280 到 255,则需要考虑长度。
- 不,由于
->change()
方法调用,迁移将更新当前列。
- 这需要
mysql
5.0.3 或更高版本,其中 varchar
得到 extended to hold more data。
测试迁移的正常过程是将生产数据库导出到本地环境,然后运行迁移,看看会发生什么。
我有一个生产应用程序,我需要将字符串列的长度更改为 280(因为默认值为 255)。
把字符串改成280安全吗?
在我的本地,使用 MySQLWorkbench,
string
列显示为VARCHAR(255)
- 我从 MySQLWorkbench 将其编辑为VARCHAR(280)
,它似乎可以工作在我的本地就是这样,但是在生产中这样做是安全的还是我应该像这样使用迁移方式(架构构建器):Schema::table('posts', function ($table) { $table->string('text', 280)->change(); });
而且迁移方式不会删除现有行,对吗?
- 是的,这只会更改数据类型,因为数据是兼容的,不需要高级迁移。如果从 280 到 255,则需要考虑长度。
- 不,由于
->change()
方法调用,迁移将更新当前列。 - 这需要
mysql
5.0.3 或更高版本,其中varchar
得到 extended to hold more data。
测试迁移的正常过程是将生产数据库导出到本地环境,然后运行迁移,看看会发生什么。