【发布时间】:2023-03-06 06:14:01
【问题描述】:
我有一个 SQL 表,其中包含一定长度的 (TEXT/VARCHAR) 列。
如何在不删除或硬编码现有数据库表的情况下更改现有列长度。
2020_02_13_065846_create_users_documents_table.php
public function up()
{
Schema::create('user_documents', function (Blueprint $table) {
$table->increments('id');
$table->string('upload_url', 200)->nullable();
$table->string('user_name', 50)->nullable();
});
现在我想通过创建一个新表将user_name 列的长度更改为 200。
【问题讨论】:
-
您可以在该文件中更正它并刷新迁移(删除所有内容),或者您进行新迁移并在其中添加更改语句(生产解决方案)。
-
"通过创建新表"?为什么要新表?
-
您可以使用
change()方法更改列。 -
我从未使用过@MohamedGamalEldin 的那个解决方案,因为它需要
doctrine/dbal包,而你可以通过声明来实现。 -
我知道,如果小改动可以使用语句,但对于大项目,我认为
doctrine/dbal更好。 @N69S
标签: laravel migration laravel-migrations