fix(mpc-service): 修复数据库迁移,添加缺失的表

migration.sql 与 schema.prisma 不同步,缺失以下表:
- session_states: 会话状态跟踪表
- share_backups: 分片备份表

同时修复了索引名称以匹配 schema 定义。

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Developer 2025-12-03 21:32:36 -08:00
parent e51edc2ce4
commit 122bf84c24
1 changed files with 44 additions and 14 deletions

View File

@ -17,35 +17,65 @@ CREATE TABLE "party_shares" (
);
-- CreateTable
CREATE TABLE "signing_sessions" (
CREATE TABLE "session_states" (
"id" VARCHAR(255) NOT NULL,
"party_id" VARCHAR(255) NOT NULL,
"session_id" VARCHAR(255) NOT NULL,
"message_hash" VARCHAR(255) NOT NULL,
"signature" TEXT,
"status" VARCHAR(20) NOT NULL DEFAULT 'pending',
"party_id" VARCHAR(255) NOT NULL,
"party_index" INTEGER NOT NULL,
"session_type" VARCHAR(20) NOT NULL,
"participants" TEXT NOT NULL,
"threshold_n" INTEGER NOT NULL,
"threshold_t" INTEGER NOT NULL,
"status" VARCHAR(20) NOT NULL,
"current_round" INTEGER NOT NULL DEFAULT 0,
"error_message" TEXT,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL,
"public_key" TEXT,
"message_hash" VARCHAR(66),
"signature" TEXT,
"started_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"completed_at" TIMESTAMP(3),
CONSTRAINT "signing_sessions_pkey" PRIMARY KEY ("id")
CONSTRAINT "session_states_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "share_backups" (
"id" VARCHAR(255) NOT NULL,
"share_id" VARCHAR(255) NOT NULL,
"backup_data" TEXT NOT NULL,
"backup_type" VARCHAR(20) NOT NULL,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"created_by" VARCHAR(255),
CONSTRAINT "share_backups_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE INDEX "party_shares_party_id_idx" ON "party_shares"("party_id");
CREATE UNIQUE INDEX "uk_party_session" ON "party_shares"("party_id", "session_id");
-- CreateIndex
CREATE INDEX "party_shares_session_id_idx" ON "party_shares"("session_id");
CREATE INDEX "idx_ps_party_id" ON "party_shares"("party_id");
-- CreateIndex
CREATE INDEX "party_shares_status_idx" ON "party_shares"("status");
CREATE INDEX "idx_ps_session_id" ON "party_shares"("session_id");
-- CreateIndex
CREATE INDEX "signing_sessions_party_id_idx" ON "signing_sessions"("party_id");
CREATE INDEX "idx_ps_status" ON "party_shares"("status");
-- CreateIndex
CREATE INDEX "signing_sessions_session_id_idx" ON "signing_sessions"("session_id");
CREATE UNIQUE INDEX "uk_session_party" ON "session_states"("session_id", "party_id");
-- CreateIndex
CREATE INDEX "signing_sessions_status_idx" ON "signing_sessions"("status");
CREATE INDEX "idx_ss_session_id" ON "session_states"("session_id");
-- CreateIndex
CREATE INDEX "idx_ss_party_id" ON "session_states"("party_id");
-- CreateIndex
CREATE INDEX "idx_ss_status" ON "session_states"("status");
-- CreateIndex
CREATE INDEX "idx_share_id" ON "share_backups"("share_id");
-- CreateIndex
CREATE INDEX "idx_created_at" ON "share_backups"("created_at");