diff --git a/backend/services/contribution-service/prisma/migrations/20250120000001_add_region_to_system_accounts/migration.sql b/backend/services/contribution-service/prisma/migrations/20250120000001_add_region_to_system_accounts/migration.sql index 1033e8dd..6411f23a 100644 --- a/backend/services/contribution-service/prisma/migrations/20250120000001_add_region_to_system_accounts/migration.sql +++ b/backend/services/contribution-service/prisma/migrations/20250120000001_add_region_to_system_accounts/migration.sql @@ -1,9 +1,9 @@ -- 系统账户按省市细分: 添加 base_type 和 region_code 字段 -- 将 accountType 从简单枚举改为组合键(如 PROVINCE_440000, CITY_440100) --- 1. 添加新字段 -ALTER TABLE "system_accounts" ADD COLUMN "base_type" VARCHAR(20); -ALTER TABLE "system_accounts" ADD COLUMN "region_code" VARCHAR(10); +-- 1. 添加新字段 (使用 TEXT 类型与 Prisma String 一致) +ALTER TABLE "system_accounts" ADD COLUMN "base_type" TEXT; +ALTER TABLE "system_accounts" ADD COLUMN "region_code" TEXT; -- 2. 设置现有数据的 base_type(与 account_type 相同) UPDATE "system_accounts" SET "base_type" = "account_type" WHERE "base_type" IS NULL; @@ -11,9 +11,6 @@ UPDATE "system_accounts" SET "base_type" = "account_type" WHERE "base_type" IS N -- 3. 将 base_type 设置为非空 ALTER TABLE "system_accounts" ALTER COLUMN "base_type" SET NOT NULL; --- 4. 修改 account_type 字段长度以支持组合键 -ALTER TABLE "system_accounts" ALTER COLUMN "account_type" TYPE VARCHAR(50); - --- 5. 创建索引(Prisma 默认命名格式: {table}_{field}_idx) +-- 4. 创建索引(Prisma 默认命名格式: {table}_{field}_idx) CREATE INDEX IF NOT EXISTS "system_accounts_base_type_idx" ON "system_accounts"("base_type"); CREATE INDEX IF NOT EXISTS "system_accounts_region_code_idx" ON "system_accounts"("region_code"); diff --git a/backend/services/contribution-service/prisma/schema.prisma b/backend/services/contribution-service/prisma/schema.prisma index 9c897c31..79f95860 100644 --- a/backend/services/contribution-service/prisma/schema.prisma +++ b/backend/services/contribution-service/prisma/schema.prisma @@ -302,10 +302,10 @@ model UnallocatedContribution { // PROVINCE_440000, CITY_440100 等 (按省市细分的账户) model SystemAccount { id BigInt @id @default(autoincrement()) - accountType String @unique @map("account_type") @db.VarChar(50) // 组合键: PROVINCE_440000, CITY_440100 等 - baseType String @map("base_type") @db.VarChar(20) // 基础类型: OPERATION / PROVINCE / CITY / HEADQUARTERS - regionCode String? @map("region_code") @db.VarChar(10) // 区域代码: 省/市代码,如 440000, 440100 - name String @db.VarChar(100) + accountType String @unique @map("account_type") // 组合键: PROVINCE_440000, CITY_440100 等 + baseType String @map("base_type") // 基础类型: OPERATION / PROVINCE / CITY / HEADQUARTERS + regionCode String? @map("region_code") // 区域代码: 省/市代码,如 440000, 440100 + name String contributionBalance Decimal @default(0) @map("contribution_balance") @db.Decimal(30, 10) contributionNeverExpires Boolean @default(false) @map("contribution_never_expires") diff --git a/backend/services/mining-admin-service/prisma/migrations/20250120000001_add_region_to_synced_system_contributions/migration.sql b/backend/services/mining-admin-service/prisma/migrations/20250120000001_add_region_to_synced_system_contributions/migration.sql index 36111166..c9cfecd7 100644 --- a/backend/services/mining-admin-service/prisma/migrations/20250120000001_add_region_to_synced_system_contributions/migration.sql +++ b/backend/services/mining-admin-service/prisma/migrations/20250120000001_add_region_to_synced_system_contributions/migration.sql @@ -1,9 +1,9 @@ -- 同步的系统账户算力表按省市细分: 添加 base_type 和 region_code 字段 -- 支持组合键(如 PROVINCE_440000, CITY_440100) --- 1. 添加新字段 -ALTER TABLE "synced_system_contributions" ADD COLUMN "base_type" VARCHAR(20) DEFAULT ''; -ALTER TABLE "synced_system_contributions" ADD COLUMN "region_code" VARCHAR(10); +-- 1. 添加新字段 (使用 TEXT 类型与 Prisma String 一致) +ALTER TABLE "synced_system_contributions" ADD COLUMN "base_type" TEXT NOT NULL DEFAULT ''; +ALTER TABLE "synced_system_contributions" ADD COLUMN "region_code" TEXT; -- 2. 设置现有数据的 base_type(根据 account_type 提取) UPDATE "synced_system_contributions" @@ -12,11 +12,8 @@ SET "base_type" = CASE WHEN "account_type" LIKE 'CITY_%' THEN 'CITY' ELSE "account_type" END -WHERE "base_type" = '' OR "base_type" IS NULL; +WHERE "base_type" = ''; --- 3. 将 base_type 设置为非空 -ALTER TABLE "synced_system_contributions" ALTER COLUMN "base_type" SET NOT NULL; - --- 4. 创建索引(Prisma 默认命名格式: {table}_{field}_idx) +-- 3. 创建索引(Prisma 默认命名格式: {table}_{field}_idx) CREATE INDEX IF NOT EXISTS "synced_system_contributions_base_type_idx" ON "synced_system_contributions"("base_type"); CREATE INDEX IF NOT EXISTS "synced_system_contributions_region_code_idx" ON "synced_system_contributions"("region_code"); diff --git a/backend/services/mining-service/prisma/migrations/20250120000001_add_region_to_system_mining_accounts/migration.sql b/backend/services/mining-service/prisma/migrations/20250120000001_add_region_to_system_mining_accounts/migration.sql index 9b5faf11..d87dffa5 100644 --- a/backend/services/mining-service/prisma/migrations/20250120000001_add_region_to_system_mining_accounts/migration.sql +++ b/backend/services/mining-service/prisma/migrations/20250120000001_add_region_to_system_mining_accounts/migration.sql @@ -11,10 +11,10 @@ ALTER TABLE "system_mining_transactions" DROP CONSTRAINT IF EXISTS "system_minin -- 步骤 2: 修改 system_mining_accounts 主表 -- ============================================================ --- 2.1 添加新列 -ALTER TABLE "system_mining_accounts" ADD COLUMN "account_type_new" VARCHAR(50); -ALTER TABLE "system_mining_accounts" ADD COLUMN "base_type" VARCHAR(20); -ALTER TABLE "system_mining_accounts" ADD COLUMN "region_code" VARCHAR(10); +-- 2.1 添加新列 (使用 TEXT 类型与 Prisma String 一致) +ALTER TABLE "system_mining_accounts" ADD COLUMN "account_type_new" TEXT; +ALTER TABLE "system_mining_accounts" ADD COLUMN "base_type" TEXT; +ALTER TABLE "system_mining_accounts" ADD COLUMN "region_code" TEXT; -- 2.2 迁移数据:将枚举值转为字符串 UPDATE "system_mining_accounts" @@ -42,8 +42,8 @@ CREATE INDEX IF NOT EXISTS "system_mining_accounts_region_code_idx" ON "system_m -- 步骤 3: 修改 system_mining_records 表 -- ============================================================ --- 3.1 添加新列并迁移数据 -ALTER TABLE "system_mining_records" ADD COLUMN "account_type_new" VARCHAR(50); +-- 3.1 添加新列并迁移数据 (使用 TEXT) +ALTER TABLE "system_mining_records" ADD COLUMN "account_type_new" TEXT; UPDATE "system_mining_records" SET "account_type_new" = "account_type"::TEXT; -- 3.2 删除旧的唯一索引和列 @@ -67,8 +67,8 @@ ALTER TABLE "system_mining_records" -- 步骤 4: 修改 system_mining_transactions 表 -- ============================================================ --- 4.1 添加新列并迁移数据 -ALTER TABLE "system_mining_transactions" ADD COLUMN "account_type_new" VARCHAR(50); +-- 4.1 添加新列并迁移数据 (使用 TEXT) +ALTER TABLE "system_mining_transactions" ADD COLUMN "account_type_new" TEXT; UPDATE "system_mining_transactions" SET "account_type_new" = "account_type"::TEXT; -- 4.2 删除旧列 diff --git a/backend/services/mining-service/prisma/schema.prisma b/backend/services/mining-service/prisma/schema.prisma index 3b28f55a..add519be 100644 --- a/backend/services/mining-service/prisma/schema.prisma +++ b/backend/services/mining-service/prisma/schema.prisma @@ -57,10 +57,10 @@ model MiningEra { // PROVINCE_440000, CITY_440100 等 (按省市细分的账户) model SystemMiningAccount { id String @id @default(uuid()) - accountType String @unique @map("account_type") @db.VarChar(50) // 组合键 - baseType String @map("base_type") @db.VarChar(20) // 基础类型: OPERATION/PROVINCE/CITY/HEADQUARTERS - regionCode String? @map("region_code") @db.VarChar(10) // 区域代码 - name String @db.VarChar(100) + accountType String @unique @map("account_type") // 组合键 + baseType String @map("base_type") // 基础类型: OPERATION/PROVINCE/CITY/HEADQUARTERS + regionCode String? @map("region_code") // 区域代码 + name String totalMined Decimal @default(0) @db.Decimal(30, 8) // 总挖到的积分股 availableBalance Decimal @default(0) @db.Decimal(30, 8) // 可用余额 totalContribution Decimal @default(0) @db.Decimal(30, 8) // 当前算力(从 contribution-service 同步) @@ -80,7 +80,7 @@ model SystemMiningAccount { // 系统账户挖矿记录(分钟级别汇总) model SystemMiningRecord { id String @id @default(uuid()) - accountType String @map("account_type") @db.VarChar(50) // 组合键 + accountType String @map("account_type") // 组合键 miningMinute DateTime @map("mining_minute") contributionRatio Decimal @db.Decimal(30, 18) @map("contribution_ratio") totalContribution Decimal @db.Decimal(30, 8) @map("total_contribution") @@ -98,7 +98,7 @@ model SystemMiningRecord { // 系统账户交易流水 model SystemMiningTransaction { id String @id @default(uuid()) - accountType String @map("account_type") @db.VarChar(50) // 组合键 + accountType String @map("account_type") // 组合键 type String // MINE, TRANSFER_OUT, ADJUSTMENT amount Decimal @db.Decimal(30, 8) balanceBefore Decimal @db.Decimal(30, 8) @map("balance_before")