add created_date to order_items

This commit is contained in:
2026-01-29 14:22:22 +08:00
parent 1e781c0aae
commit b341c02a61
@@ -0,0 +1,52 @@
<?php
use Hyperf\Database\Schema\Schema;
use Hyperf\Database\Schema\Blueprint;
use Hyperf\Database\Migrations\Migration;
return new class extends Migration
{
/**
* Run the migrations.
*
* 为 order_items 表添加 created_date 字段(冗余存储父订单创建时间)
* 用于 hypertable 分区键,与 orders 表保持相同的分区策略
*/
public function up(): void
{
Schema::table('order_items', function (Blueprint $table) {
$table->timestampTz('created_date')
->after('platform_order_id')
->comment('订单创建时间(冗余存储,用于分区)');
});
// 从关联的 orders 表填充 created_date
Schema::getConnection()->statement('
UPDATE order_items
SET created_date = orders.created_date
FROM orders
WHERE order_items.order_id = orders.id
');
// 设置为非空
Schema::table('order_items', function (Blueprint $table) {
$table->timestampTz('created_date')->nullable(false)->change();
});
// 添加索引
Schema::table('order_items', function (Blueprint $table) {
$table->index('created_date', 'order_items_created_date_idx');
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('order_items', function (Blueprint $table) {
$table->dropIndex('order_items_created_date_idx');
$table->dropColumn('created_date');
});
}
};