Add idempotent migration script
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
70
src/Vegasco.Server.Api/migrations/migration.sql
Normal file
70
src/Vegasco.Server.Api/migrations/migration.sql
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
CREATE TABLE IF NOT EXISTS "__EFMigrationsHistory" (
|
||||||
|
"MigrationId" character varying(150) NOT NULL,
|
||||||
|
"ProductVersion" character varying(32) NOT NULL,
|
||||||
|
CONSTRAINT "PK___EFMigrationsHistory" PRIMARY KEY ("MigrationId")
|
||||||
|
);
|
||||||
|
|
||||||
|
START TRANSACTION;
|
||||||
|
|
||||||
|
DO $EF$
|
||||||
|
BEGIN
|
||||||
|
IF NOT EXISTS(SELECT 1 FROM "__EFMigrationsHistory" WHERE "MigrationId" = '20240818105918_Initial') THEN
|
||||||
|
CREATE TABLE "Users" (
|
||||||
|
"Id" text NOT NULL,
|
||||||
|
CONSTRAINT "PK_Users" PRIMARY KEY ("Id")
|
||||||
|
);
|
||||||
|
END IF;
|
||||||
|
END $EF$;
|
||||||
|
|
||||||
|
DO $EF$
|
||||||
|
BEGIN
|
||||||
|
IF NOT EXISTS(SELECT 1 FROM "__EFMigrationsHistory" WHERE "MigrationId" = '20240818105918_Initial') THEN
|
||||||
|
CREATE TABLE "Cars" (
|
||||||
|
"Id" uuid NOT NULL,
|
||||||
|
"Name" character varying(50) NOT NULL,
|
||||||
|
"UserId" text NOT NULL,
|
||||||
|
CONSTRAINT "PK_Cars" PRIMARY KEY ("Id"),
|
||||||
|
CONSTRAINT "FK_Cars_Users_UserId" FOREIGN KEY ("UserId") REFERENCES "Users" ("Id") ON DELETE CASCADE
|
||||||
|
);
|
||||||
|
END IF;
|
||||||
|
END $EF$;
|
||||||
|
|
||||||
|
DO $EF$
|
||||||
|
BEGIN
|
||||||
|
IF NOT EXISTS(SELECT 1 FROM "__EFMigrationsHistory" WHERE "MigrationId" = '20240818105918_Initial') THEN
|
||||||
|
CREATE TABLE "Consumptions" (
|
||||||
|
"Id" uuid NOT NULL,
|
||||||
|
"DateTime" timestamp with time zone NOT NULL,
|
||||||
|
"Distance" double precision NOT NULL,
|
||||||
|
"Amount" double precision NOT NULL,
|
||||||
|
"IgnoreInCalculation" boolean NOT NULL,
|
||||||
|
"CarId" uuid NOT NULL,
|
||||||
|
CONSTRAINT "PK_Consumptions" PRIMARY KEY ("Id"),
|
||||||
|
CONSTRAINT "FK_Consumptions_Cars_CarId" FOREIGN KEY ("CarId") REFERENCES "Cars" ("Id") ON DELETE CASCADE
|
||||||
|
);
|
||||||
|
END IF;
|
||||||
|
END $EF$;
|
||||||
|
|
||||||
|
DO $EF$
|
||||||
|
BEGIN
|
||||||
|
IF NOT EXISTS(SELECT 1 FROM "__EFMigrationsHistory" WHERE "MigrationId" = '20240818105918_Initial') THEN
|
||||||
|
CREATE INDEX "IX_Cars_UserId" ON "Cars" ("UserId");
|
||||||
|
END IF;
|
||||||
|
END $EF$;
|
||||||
|
|
||||||
|
DO $EF$
|
||||||
|
BEGIN
|
||||||
|
IF NOT EXISTS(SELECT 1 FROM "__EFMigrationsHistory" WHERE "MigrationId" = '20240818105918_Initial') THEN
|
||||||
|
CREATE INDEX "IX_Consumptions_CarId" ON "Consumptions" ("CarId");
|
||||||
|
END IF;
|
||||||
|
END $EF$;
|
||||||
|
|
||||||
|
DO $EF$
|
||||||
|
BEGIN
|
||||||
|
IF NOT EXISTS(SELECT 1 FROM "__EFMigrationsHistory" WHERE "MigrationId" = '20240818105918_Initial') THEN
|
||||||
|
INSERT INTO "__EFMigrationsHistory" ("MigrationId", "ProductVersion")
|
||||||
|
VALUES ('20240818105918_Initial', '9.0.5');
|
||||||
|
END IF;
|
||||||
|
END $EF$;
|
||||||
|
COMMIT;
|
||||||
|
|
||||||
Reference in New Issue
Block a user