fix(infra): reconcile shared Prisma migration history

This commit is contained in:
2026-07-30 17:20:52 +00:00
parent 5fa812b551
commit d6904f2c9d
4 changed files with 104 additions and 0 deletions
+6
View File
@@ -29,12 +29,16 @@ enum AuctionStatus {
FINALIZING
FINISHED
CANCELED
@@map("auction_status")
}
enum AuctionType {
BUY_RICE
SELL_RICE
UNIQUE_ITEM
@@map("auction_type")
}
enum DiplomacyLetterState {
@@ -42,6 +46,8 @@ enum DiplomacyLetterState {
ACTIVATED
CANCELLED
REPLACED
@@map("diplomacy_letter_state")
}
enum InputEventStatus {
@@ -0,0 +1,43 @@
-- The game and gateway histories once used the same 20260727000000 migration
-- name. Prisma records names in one shared table, so whichever history ran
-- second skipped its different archive SQL. Reapply the gateway side
-- idempotently under a globally unique migration name.
ALTER TABLE "app_user"
ADD COLUMN IF NOT EXISTS "legacy_data" JSONB NOT NULL DEFAULT '{}'::jsonb;
ALTER TABLE "system"
ADD COLUMN IF NOT EXISTS "registration_enabled" BOOLEAN NOT NULL DEFAULT FALSE,
ADD COLUMN IF NOT EXISTS "login_enabled" BOOLEAN NOT NULL DEFAULT FALSE,
ADD COLUMN IF NOT EXISTS "created_at" TIMESTAMP(3),
ADD COLUMN IF NOT EXISTS "updated_at" TIMESTAMP(3);
CREATE TABLE IF NOT EXISTS "legacy_member_log" (
"id" BIGINT PRIMARY KEY,
"member_no" INTEGER NOT NULL,
"user_id" TEXT NOT NULL,
"date" TIMESTAMP(3) NOT NULL,
"action_type" TEXT NOT NULL,
"action" JSONB
);
CREATE INDEX IF NOT EXISTS "legacy_member_log_user_date"
ON "legacy_member_log" ("user_id", "date");
CREATE INDEX IF NOT EXISTS "legacy_member_log_member_date"
ON "legacy_member_log" ("member_no", "date");
CREATE TABLE IF NOT EXISTS "legacy_banned_member" (
"no" INTEGER PRIMARY KEY,
"hashed_email" TEXT NOT NULL UNIQUE,
"info" TEXT
);
CREATE TABLE IF NOT EXISTS "legacy_root_key_value" (
"id" SERIAL PRIMARY KEY,
"source_table" TEXT NOT NULL,
"namespace" TEXT NOT NULL,
"key" TEXT NOT NULL,
"value" JSONB NOT NULL,
"migrated_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "legacy_root_key_value_source_namespace_key"
UNIQUE ("source_table", "namespace", "key")
);
@@ -0,0 +1,51 @@
-- The game and gateway histories once used the same 20260727000000 migration
-- name. Prisma records names in one shared table, so whichever history ran
-- second skipped its different archive SQL. Reapply the game side idempotently.
ALTER TABLE "ng_old_nations"
ADD COLUMN IF NOT EXISTS "source_id" INTEGER NOT NULL DEFAULT 0;
DROP INDEX IF EXISTS "ng_old_nations_server_id_nation";
CREATE UNIQUE INDEX IF NOT EXISTS "ng_old_nations_server_nation_source"
ON "ng_old_nations" ("server_id", "nation", "source_id");
ALTER TABLE "yearbook_history"
ADD COLUMN IF NOT EXISTS "source_id" INTEGER NOT NULL DEFAULT 0,
ADD COLUMN IF NOT EXISTS "global_history" JSONB NOT NULL DEFAULT '[]'::jsonb,
ADD COLUMN IF NOT EXISTS "global_action" JSONB NOT NULL DEFAULT '[]'::jsonb;
DROP INDEX IF EXISTS "yearbook_history_profile_year_month_key";
CREATE UNIQUE INDEX IF NOT EXISTS "yearbook_history_profile_year_month_source"
ON "yearbook_history" ("profile_name", "year", "month", "source_id");
ALTER TABLE "inheritance_log"
ADD COLUMN IF NOT EXISTS "legacy_id" INTEGER,
ADD COLUMN IF NOT EXISTS "server_id" TEXT,
ADD COLUMN IF NOT EXISTS "log_type" TEXT NOT NULL DEFAULT 'inheritPoint';
CREATE UNIQUE INDEX IF NOT EXISTS "inheritance_log_legacy_id_key"
ON "inheritance_log" ("legacy_id");
ALTER TABLE "emperior"
ADD COLUMN IF NOT EXISTS "legacy_id" INTEGER;
CREATE UNIQUE INDEX IF NOT EXISTS "emperior_legacy_id_key"
ON "emperior" ("legacy_id");
ALTER TABLE "inheritance_result"
ADD COLUMN IF NOT EXISTS "legacy_id" INTEGER;
CREATE UNIQUE INDEX IF NOT EXISTS "inheritance_result_legacy_id_key"
ON "inheritance_result" ("legacy_id");
CREATE TABLE IF NOT EXISTS "legacy_game_storage" (
"id" SERIAL PRIMARY KEY,
"source_id" INTEGER NOT NULL,
"namespace" TEXT NOT NULL,
"key" TEXT NOT NULL,
"value" JSONB NOT NULL,
"scope" TEXT NOT NULL,
"migrated_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "legacy_game_storage_source_id_key" UNIQUE ("source_id"),
CONSTRAINT "legacy_game_storage_namespace_key" UNIQUE ("namespace", "key")
);
CREATE INDEX IF NOT EXISTS "legacy_game_storage_scope_namespace"
ON "legacy_game_storage" ("scope", "namespace");