提供 PG18/Redis7.4/S3 本地 compose、环境变量样例与 Prisma 首版迁移;建立 outbox_events、idempotency_keys、system_configs 三张平台骨架表及幂等种子。MinIO 镜像不可得,本地以 S3Mock 替代。
61 lines
2.0 KiB
SQL
61 lines
2.0 KiB
SQL
-- CreateTable
|
|
CREATE TABLE "outbox_events" (
|
|
"id" CHAR(26) NOT NULL,
|
|
"aggregate_type" VARCHAR(64) NOT NULL,
|
|
"aggregate_id" CHAR(26) NOT NULL,
|
|
"event_type" VARCHAR(128) NOT NULL,
|
|
"payload_json" JSONB NOT NULL,
|
|
"trace_id" VARCHAR(64),
|
|
"occurred_at" TIMESTAMPTZ(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"published_at" TIMESTAMPTZ(3),
|
|
"attempts" INTEGER NOT NULL DEFAULT 0,
|
|
"last_error" TEXT,
|
|
|
|
CONSTRAINT "outbox_events_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "idempotency_keys" (
|
|
"id" CHAR(26) NOT NULL,
|
|
"scope" VARCHAR(64) NOT NULL,
|
|
"key" VARCHAR(128) NOT NULL,
|
|
"request_hash" VARCHAR(64) NOT NULL,
|
|
"response_status" INTEGER,
|
|
"response_body" JSONB,
|
|
"created_at" TIMESTAMPTZ(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"expires_at" TIMESTAMPTZ(3) NOT NULL,
|
|
|
|
CONSTRAINT "idempotency_keys_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "system_configs" (
|
|
"id" CHAR(26) NOT NULL,
|
|
"config_key" VARCHAR(128) NOT NULL,
|
|
"config_value" JSONB NOT NULL,
|
|
"value_type" VARCHAR(16) NOT NULL,
|
|
"description" VARCHAR(255) NOT NULL DEFAULT '',
|
|
"version" INTEGER NOT NULL DEFAULT 1,
|
|
"is_editable" BOOLEAN NOT NULL DEFAULT true,
|
|
"created_at" TIMESTAMPTZ(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updated_at" TIMESTAMPTZ(3) NOT NULL,
|
|
"updated_by" CHAR(26),
|
|
|
|
CONSTRAINT "system_configs_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "outbox_events_published_at_occurred_at_idx" ON "outbox_events"("published_at", "occurred_at");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "outbox_events_aggregate_type_aggregate_id_idx" ON "outbox_events"("aggregate_type", "aggregate_id");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "idempotency_keys_expires_at_idx" ON "idempotency_keys"("expires_at");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "idempotency_keys_scope_key_key" ON "idempotency_keys"("scope", "key");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "system_configs_config_key_key" ON "system_configs"("config_key");
|