1、在 Laravel 9 中执行数据库迁移,修改字段名称,再修改其属性,报错:There is no column with name inbounded_quantity on table return_order_items.如图1

Plaintext
PS E:\wwwroot\object> php artisan migrate
INFO Running migrations.
2024_05_27_033321_add_signed_quantity_to_return_order_items_table ..................................................................... 225ms FAIL
Doctrine\DBAL\Schema\Exception\ColumnDoesNotExist
There is no column with name "inbounded_quantity" on table "return_order_items".
at E:\wwwroot\object\vendor\doctrine\dbal\src\Schema\Exception\ColumnDoesNotExist.php:16
12▕ final class ColumnDoesNotExist extends SchemaException
13▕ {
14▕ public static function new(string $columnName, string $table): self
15▕ {
➜ 16▕ return new self(
17▕ sprintf('There is no column with name "%s" on table "%s".', $columnName, $table),
18▕ self::COLUMN_DOESNT_EXIST,
19▕ );
20▕ }
1 E:\wwwroot\object\vendor\doctrine\dbal\src\Schema\SchemaException.php:111
Doctrine\DBAL\Schema\Exception\ColumnDoesNotExist::new("inbounded_quantity", "return_order_items")
2 E:\wwwroot\object\vendor\doctrine\dbal\src\Schema\Table.php:785
Doctrine\DBAL\Schema\SchemaException::columnDoesNotExist("inbounded_quantity", "return_order_items")
PS E:\wwwroot\object>
2、代码实现如下
PHP
Schema::table('return_order_items', function (Blueprint $table) {
$table->renameColumn('received_quantity', 'inbounded_quantity');
$table->unsignedInteger('inbounded_quantity')->nullable()->default(0)->comment('已入库数量')->change();
});
3、决定尝试先修改其属性,再修改字段名称。代码实现如下
PHP
Schema::table('return_order_items', function (Blueprint $table) {
$table->unsignedInteger('received_quantity')->nullable()->default(0)->comment('已入库数量')->change();
$table->renameColumn('received_quantity', 'inbounded_quantity');
});
4、再次执行数据库迁移,执行成功。但是,查看表设计,发现字段注释未修改,不符合预期。如图2

5、由于此字段还未使用到,仅是之前预留的,最后决定先删除字段,再添加字段。代码实现如下
PHP
dropColumn('received_quantity');
$table->unsignedInteger('inbounded_quantity')->default(0)->comment('已入库数量')->after('return_quantity');
$table->unsignedInteger('signed_quantity')->default(0)->comment('已签收数量');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('return_order_items', function (Blueprint $table) {
$table->dropColumn('inbounded_quantity');
$table->unsignedInteger('received_quantity')->nullable()->comment('已收货数量')->after('return_quantity');
$table->dropColumn('signed_quantity');
});
}
};
6、执行迁移后,表结构符合预期。如图3

PHP / Laravel / Yii2 老项目维护与长期技术支持
如果你的 PHP / Laravel / Yii2 项目已经上线,但遇到原开发离职、Bug 长期无人修复、接口不稳定、性能下降、代码难以接手等问题,可以联系我做一次远程技术排查。
适合以下情况:
✅ 老旧 PHP 系统无人维护
✅ Laravel / Yii2 项目 Bug 修复
✅ 后台管理系统小功能迭代
✅ RESTful API 接口排查
✅ MySQL / Redis / Nginx 性能问题
✅ 长期远程兼职维护
可先从一次小问题开始:
✅ 线上报错排查
✅ 接口异常分析
✅ 慢查询与性能瓶颈定位
✅ 代码结构初步评估
✅ 部署环境与日志检查
如需咨询,请联系我,并注明:PHP 维护咨询。
联系方式:
Telegram:@shuijingwan
微信:13980074657
邮箱:shuijingwanwq@gmail.com
