diff --git a/src/Vegasco.Server.Api/migrations/migration.sql b/src/Vegasco.Server.Api/migrations/migration.sql new file mode 100644 index 0000000..da5b1ad --- /dev/null +++ b/src/Vegasco.Server.Api/migrations/migration.sql @@ -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; +