feat(db): add 4 reference models with initial migrations
This commit is contained in:
@@ -0,0 +1,13 @@
|
|||||||
|
PORT=3000
|
||||||
|
NODE_ENV=development
|
||||||
|
FRONTEND_URL=http://localhost:8080
|
||||||
|
|
||||||
|
DATABASE_URL="sqlserver://localhost:1433;database=eme_db;user=sa;password=YourStrongPassword123!;encrypt=true;trustServerCertificate=true"
|
||||||
|
DB_SERVER=localhost
|
||||||
|
DB_PORT=1433
|
||||||
|
DB_NAME=eme_db
|
||||||
|
DB_USER=sa
|
||||||
|
DB_PASSWORD=YourStrongPassword123!
|
||||||
|
|
||||||
|
AZURE_TENANT_ID=
|
||||||
|
AZURE_CLIENT_ID=
|
||||||
@@ -0,0 +1,71 @@
|
|||||||
|
BEGIN TRY
|
||||||
|
|
||||||
|
BEGIN TRAN;
|
||||||
|
|
||||||
|
-- CreateTable
|
||||||
|
CREATE TABLE [dbo].[campus] (
|
||||||
|
[id] INT NOT NULL IDENTITY(1,1),
|
||||||
|
[nom] NVARCHAR(1000) NOT NULL,
|
||||||
|
[adresse] NVARCHAR(1000) NOT NULL,
|
||||||
|
[ville] NVARCHAR(1000) NOT NULL,
|
||||||
|
[code_postal] NVARCHAR(1000) NOT NULL,
|
||||||
|
[actif] BIT NOT NULL,
|
||||||
|
[created_at] DATETIME2 NOT NULL,
|
||||||
|
[updated_at] DATETIME2 NOT NULL,
|
||||||
|
CONSTRAINT [campus_pkey] PRIMARY KEY CLUSTERED ([id])
|
||||||
|
);
|
||||||
|
|
||||||
|
-- CreateTable
|
||||||
|
CREATE TABLE [dbo].[role] (
|
||||||
|
[id] INT NOT NULL IDENTITY(1,1),
|
||||||
|
[code] NVARCHAR(1000) NOT NULL,
|
||||||
|
[libelle] NVARCHAR(1000) NOT NULL,
|
||||||
|
[description] NVARCHAR(1000) NOT NULL,
|
||||||
|
CONSTRAINT [role_pkey] PRIMARY KEY CLUSTERED ([id])
|
||||||
|
);
|
||||||
|
|
||||||
|
-- CreateTable
|
||||||
|
CREATE TABLE [dbo].[utilisateur] (
|
||||||
|
[id] INT NOT NULL IDENTITY(1,1),
|
||||||
|
[microsoft_id] NVARCHAR(1000) NOT NULL,
|
||||||
|
[nom] NVARCHAR(1000) NOT NULL,
|
||||||
|
[prenom] NVARCHAR(1000) NOT NULL,
|
||||||
|
[email] NVARCHAR(1000) NOT NULL,
|
||||||
|
[classe] NVARCHAR(1000) NOT NULL,
|
||||||
|
[role_id] INT NOT NULL,
|
||||||
|
[campus_id] INT NOT NULL,
|
||||||
|
[actif] BIT NOT NULL,
|
||||||
|
[created_at] DATETIME2 NOT NULL,
|
||||||
|
[updated_at] DATETIME2 NOT NULL,
|
||||||
|
CONSTRAINT [utilisateur_pkey] PRIMARY KEY CLUSTERED ([id])
|
||||||
|
);
|
||||||
|
|
||||||
|
-- CreateTable
|
||||||
|
CREATE TABLE [dbo].[categorie_materiel] (
|
||||||
|
[id] INT NOT NULL IDENTITY(1,1),
|
||||||
|
[nom] NVARCHAR(1000) NOT NULL,
|
||||||
|
[description] NVARCHAR(1000) NOT NULL,
|
||||||
|
[actif] BIT NOT NULL,
|
||||||
|
[created_at] DATETIME2 NOT NULL,
|
||||||
|
[updated_at] DATETIME2 NOT NULL,
|
||||||
|
CONSTRAINT [categorie_materiel_pkey] PRIMARY KEY CLUSTERED ([id])
|
||||||
|
);
|
||||||
|
|
||||||
|
-- AddForeignKey
|
||||||
|
ALTER TABLE [dbo].[utilisateur] ADD CONSTRAINT [utilisateur_role_id_fkey] FOREIGN KEY ([role_id]) REFERENCES [dbo].[role]([id]) ON DELETE NO ACTION ON UPDATE CASCADE;
|
||||||
|
|
||||||
|
-- AddForeignKey
|
||||||
|
ALTER TABLE [dbo].[utilisateur] ADD CONSTRAINT [utilisateur_campus_id_fkey] FOREIGN KEY ([campus_id]) REFERENCES [dbo].[campus]([id]) ON DELETE NO ACTION ON UPDATE CASCADE;
|
||||||
|
|
||||||
|
COMMIT TRAN;
|
||||||
|
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
|
||||||
|
IF @@TRANCOUNT > 0
|
||||||
|
BEGIN
|
||||||
|
ROLLBACK TRAN;
|
||||||
|
END;
|
||||||
|
THROW
|
||||||
|
|
||||||
|
END CATCH
|
||||||
+25
@@ -0,0 +1,25 @@
|
|||||||
|
BEGIN TRY
|
||||||
|
|
||||||
|
BEGIN TRAN;
|
||||||
|
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE [dbo].[campus] ADD CONSTRAINT [campus_actif_df] DEFAULT 1 FOR [actif], CONSTRAINT [campus_created_at_df] DEFAULT CURRENT_TIMESTAMP FOR [created_at];
|
||||||
|
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE [dbo].[categorie_materiel] ADD CONSTRAINT [categorie_materiel_actif_df] DEFAULT 1 FOR [actif], CONSTRAINT [categorie_materiel_created_at_df] DEFAULT CURRENT_TIMESTAMP FOR [created_at];
|
||||||
|
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE [dbo].[utilisateur] ADD CONSTRAINT [utilisateur_actif_df] DEFAULT 1 FOR [actif], CONSTRAINT [utilisateur_created_at_df] DEFAULT CURRENT_TIMESTAMP FOR [created_at];
|
||||||
|
|
||||||
|
COMMIT TRAN;
|
||||||
|
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
|
||||||
|
IF @@TRANCOUNT > 0
|
||||||
|
BEGIN
|
||||||
|
ROLLBACK TRAN;
|
||||||
|
END;
|
||||||
|
THROW
|
||||||
|
|
||||||
|
END CATCH
|
||||||
+28
@@ -0,0 +1,28 @@
|
|||||||
|
BEGIN TRY
|
||||||
|
|
||||||
|
BEGIN TRAN;
|
||||||
|
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE [dbo].[utilisateur] ALTER COLUMN [classe] NVARCHAR(1000) NULL;
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
ALTER TABLE [dbo].[role] ADD CONSTRAINT [role_code_key] UNIQUE NONCLUSTERED ([code]);
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
ALTER TABLE [dbo].[utilisateur] ADD CONSTRAINT [utilisateur_microsoft_id_key] UNIQUE NONCLUSTERED ([microsoft_id]);
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
ALTER TABLE [dbo].[utilisateur] ADD CONSTRAINT [utilisateur_email_key] UNIQUE NONCLUSTERED ([email]);
|
||||||
|
|
||||||
|
COMMIT TRAN;
|
||||||
|
|
||||||
|
END TRY
|
||||||
|
BEGIN CATCH
|
||||||
|
|
||||||
|
IF @@TRANCOUNT > 0
|
||||||
|
BEGIN
|
||||||
|
ROLLBACK TRAN;
|
||||||
|
END;
|
||||||
|
THROW
|
||||||
|
|
||||||
|
END CATCH
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
# Please do not edit this file manually
|
||||||
|
# It should be added in your version-control system (e.g., Git)
|
||||||
|
provider = "mssql"
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
generator client {
|
||||||
|
provider = "prisma-client-js"
|
||||||
|
}
|
||||||
|
|
||||||
|
datasource db {
|
||||||
|
provider = "sqlserver"
|
||||||
|
}
|
||||||
|
|
||||||
|
model Campus {
|
||||||
|
id Int @id @default(autoincrement())
|
||||||
|
nom String
|
||||||
|
adresse String
|
||||||
|
ville String
|
||||||
|
codePostal String @map("code_postal")
|
||||||
|
actif Boolean @default(true)
|
||||||
|
createdAt DateTime @default(now()) @map("created_at")
|
||||||
|
updatedAt DateTime @updatedAt @map("updated_at")
|
||||||
|
utilisateurs Utilisateur[]
|
||||||
|
|
||||||
|
@@map("campus")
|
||||||
|
}
|
||||||
|
|
||||||
|
model Role {
|
||||||
|
id Int @id @default(autoincrement())
|
||||||
|
code String @unique
|
||||||
|
libelle String
|
||||||
|
description String
|
||||||
|
utilisateurs Utilisateur[]
|
||||||
|
|
||||||
|
@@map("role")
|
||||||
|
}
|
||||||
|
|
||||||
|
model Utilisateur {
|
||||||
|
id Int @id @default(autoincrement())
|
||||||
|
microsoftId String @unique @map("microsoft_id")
|
||||||
|
nom String
|
||||||
|
prenom String
|
||||||
|
email String @unique
|
||||||
|
classe String?
|
||||||
|
roleId Int @map("role_id")
|
||||||
|
campusId Int @map("campus_id")
|
||||||
|
actif Boolean @default(true)
|
||||||
|
createdAt DateTime @default(now()) @map("created_at")
|
||||||
|
updatedAt DateTime @updatedAt @map("updated_at")
|
||||||
|
campus Campus @relation(fields: [campusId], references: [id])
|
||||||
|
role Role @relation(fields: [roleId], references: [id])
|
||||||
|
|
||||||
|
@@map("utilisateur")
|
||||||
|
}
|
||||||
|
|
||||||
|
model CategorieMateriel {
|
||||||
|
id Int @id @default(autoincrement())
|
||||||
|
nom String
|
||||||
|
description String
|
||||||
|
actif Boolean @default(true)
|
||||||
|
createdAt DateTime @default(now()) @map("created_at")
|
||||||
|
updatedAt DateTime @updatedAt @map("updated_at")
|
||||||
|
|
||||||
|
@@map("categorie_materiel")
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user