MHServerEmu/src/MHServerEmu.DatabaseAccess/SQLite/Scripts/InitializeDatabase.sql

77 lines
2.2 KiB
MySQL
Raw Normal View History

-- Initialize a new database file using the current schema version
PRAGMA user_version=4;
PRAGMA journal_mode=WAL;
CREATE TABLE "Account" (
"Id" INTEGER NOT NULL UNIQUE,
"Email" TEXT NOT NULL UNIQUE,
"PlayerName" TEXT NOT NULL UNIQUE,
"PasswordHash" BLOB NOT NULL,
"Salt" BLOB NOT NULL,
"UserLevel" INTEGER NOT NULL,
"Flags" INTEGER NOT NULL,
PRIMARY KEY("Id")
);
CREATE TABLE "Player" (
"DbGuid" INTEGER NOT NULL UNIQUE,
"ArchiveData" BLOB,
"StartTarget" INTEGER,
"AOIVolume" INTEGER,
2025-02-13 21:05:23 +03:00
"GazillioniteBalance" INTEGER,
FOREIGN KEY("DbGuid") REFERENCES "Account"("Id") ON DELETE CASCADE,
PRIMARY KEY("DbGuid")
);
CREATE TABLE "Avatar" (
"DbGuid" INTEGER NOT NULL UNIQUE,
"ContainerDbGuid" INTEGER,
"InventoryProtoGuid" INTEGER,
"Slot" INTEGER,
"EntityProtoGuid" INTEGER,
"ArchiveData" BLOB,
FOREIGN KEY("ContainerDbGuid") REFERENCES "Player"("DbGuid") ON DELETE CASCADE,
PRIMARY KEY("DbGuid")
);
CREATE TABLE "TeamUp" (
"DbGuid" INTEGER NOT NULL UNIQUE,
"ContainerDbGuid" INTEGER,
"InventoryProtoGuid" INTEGER,
"Slot" INTEGER,
"EntityProtoGuid" INTEGER,
"ArchiveData" BLOB,
FOREIGN KEY("ContainerDbGuid") REFERENCES "Player"("DbGuid") ON DELETE CASCADE,
PRIMARY KEY("DbGuid")
);
CREATE TABLE "Item" (
"DbGuid" INTEGER NOT NULL UNIQUE,
"ContainerDbGuid" INTEGER,
"InventoryProtoGuid" INTEGER,
"Slot" INTEGER,
"EntityProtoGuid" INTEGER,
"ArchiveData" BLOB,
FOREIGN KEY("ContainerDbGuid") REFERENCES "Player"("DbGuid") ON DELETE CASCADE,
FOREIGN KEY("ContainerDbGuid") REFERENCES "Avatar"("DbGuid") ON DELETE CASCADE,
FOREIGN KEY("ContainerDbGuid") REFERENCES "TeamUp"("DbGuid") ON DELETE CASCADE,
PRIMARY KEY("DbGuid")
);
CREATE TABLE "ControlledEntity" (
"DbGuid" INTEGER NOT NULL UNIQUE,
"ContainerDbGuid" INTEGER,
"InventoryProtoGuid" INTEGER,
"Slot" INTEGER,
"EntityProtoGuid" INTEGER,
"ArchiveData" BLOB,
FOREIGN KEY("ContainerDbGuid") REFERENCES "Avatar"("DbGuid") ON DELETE CASCADE,
PRIMARY KEY("DbGuid")
);
CREATE INDEX "IX_Avatar_ContainerDbGuid" ON "Avatar" ("ContainerDbGuid");
CREATE INDEX "IX_TeamUp_ContainerDbGuid" ON "TeamUp" ("ContainerDbGuid");
CREATE INDEX "IX_Item_ContainerDbGuid" ON "Item" ("ContainerDbGuid");
CREATE INDEX "IX_ControlledEntity_ContainerDbGuid" ON "ControlledEntity" ("ContainerDbGuid");