Implement phase 6 critical effect normalization
This commit is contained in:
@@ -39,5 +39,52 @@ public static class RolemasterDbSchemaUpgrader
|
||||
ON "CriticalBranches" ("CriticalResultId", "SortOrder");
|
||||
""",
|
||||
cancellationToken);
|
||||
|
||||
await dbContext.Database.ExecuteSqlRawAsync(
|
||||
"""
|
||||
CREATE TABLE IF NOT EXISTS "CriticalEffects" (
|
||||
"Id" INTEGER NOT NULL CONSTRAINT "PK_CriticalEffects" PRIMARY KEY AUTOINCREMENT,
|
||||
"CriticalResultId" INTEGER NULL,
|
||||
"CriticalBranchId" INTEGER NULL,
|
||||
"EffectCode" TEXT NOT NULL,
|
||||
"Target" TEXT NULL,
|
||||
"ValueInteger" INTEGER NULL,
|
||||
"ValueDecimal" TEXT NULL,
|
||||
"ValueExpression" TEXT NULL,
|
||||
"DurationRounds" INTEGER NULL,
|
||||
"PerRound" INTEGER NULL,
|
||||
"Modifier" INTEGER NULL,
|
||||
"BodyPart" TEXT NULL,
|
||||
"IsPermanent" INTEGER NOT NULL,
|
||||
"SourceType" TEXT NOT NULL,
|
||||
"SourceText" TEXT NULL,
|
||||
CONSTRAINT "FK_CriticalEffects_CriticalResults_CriticalResultId"
|
||||
FOREIGN KEY ("CriticalResultId") REFERENCES "CriticalResults" ("Id") ON DELETE CASCADE,
|
||||
CONSTRAINT "FK_CriticalEffects_CriticalBranches_CriticalBranchId"
|
||||
FOREIGN KEY ("CriticalBranchId") REFERENCES "CriticalBranches" ("Id") ON DELETE CASCADE
|
||||
);
|
||||
""",
|
||||
cancellationToken);
|
||||
|
||||
await dbContext.Database.ExecuteSqlRawAsync(
|
||||
"""
|
||||
CREATE INDEX IF NOT EXISTS "IX_CriticalEffects_EffectCode"
|
||||
ON "CriticalEffects" ("EffectCode");
|
||||
""",
|
||||
cancellationToken);
|
||||
|
||||
await dbContext.Database.ExecuteSqlRawAsync(
|
||||
"""
|
||||
CREATE INDEX IF NOT EXISTS "IX_CriticalEffects_CriticalResultId"
|
||||
ON "CriticalEffects" ("CriticalResultId");
|
||||
""",
|
||||
cancellationToken);
|
||||
|
||||
await dbContext.Database.ExecuteSqlRawAsync(
|
||||
"""
|
||||
CREATE INDEX IF NOT EXISTS "IX_CriticalEffects_CriticalBranchId"
|
||||
ON "CriticalEffects" ("CriticalBranchId");
|
||||
""",
|
||||
cancellationToken);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user