From 1b65998d19b69f5d127c61fb4ad902c0dfe686d1 Mon Sep 17 00:00:00 2001 From: Clement FERRERE Date: Wed, 23 Feb 2022 15:39:04 +0100 Subject: [PATCH 1/3] =?UTF-8?q?Premi=C3=A8re=20tentative=20de=20dockerisat?= =?UTF-8?q?ion,=20docker=20compose=20ne=20fonctionne=20pas=20mais=20le=20c?= =?UTF-8?q?onteneur=20de=20l'api=20se=20lance=20de=20mani=C3=A8re=20correc?= =?UTF-8?q?tement=20ind=C3=A9pendante?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Collaborateur_Epa_Back/.dockerignore | 25 ++++++++++++ Collaborateur_Epa_Back/.env | 6 +++ Collaborateur_Epa_Back/docker-compose.dcproj | 20 ++++++++++ .../docker-compose.override.yml | 14 +++++++ Collaborateur_Epa_Back/docker-compose.yml | 38 +++++++++++++++++++ .../espacecollab.backend.api/Dockerfile | 29 ++++++++++++++ .../Properties/launchSettings.json | 17 ++++++--- .../espacecollab.backend.api/appsettings.json | 2 +- .../espacecollab.backend.api.csproj | 4 ++ .../espacecollab.backend.sln | 8 +++- 10 files changed, 156 insertions(+), 7 deletions(-) create mode 100644 Collaborateur_Epa_Back/.dockerignore create mode 100644 Collaborateur_Epa_Back/.env create mode 100644 Collaborateur_Epa_Back/docker-compose.dcproj create mode 100644 Collaborateur_Epa_Back/docker-compose.override.yml create mode 100644 Collaborateur_Epa_Back/docker-compose.yml create mode 100644 Collaborateur_Epa_Back/espacecollab.backend.api/Dockerfile diff --git a/Collaborateur_Epa_Back/.dockerignore b/Collaborateur_Epa_Back/.dockerignore new file mode 100644 index 0000000..3729ff0 --- /dev/null +++ b/Collaborateur_Epa_Back/.dockerignore @@ -0,0 +1,25 @@ +**/.classpath +**/.dockerignore +**/.env +**/.git +**/.gitignore +**/.project +**/.settings +**/.toolstarget +**/.vs +**/.vscode +**/*.*proj.user +**/*.dbmdl +**/*.jfm +**/azds.yaml +**/bin +**/charts +**/docker-compose* +**/Dockerfile* +**/node_modules +**/npm-debug.log +**/obj +**/secrets.dev.yaml +**/values.dev.yaml +LICENSE +README.md \ No newline at end of file diff --git a/Collaborateur_Epa_Back/.env b/Collaborateur_Epa_Back/.env new file mode 100644 index 0000000..91933b3 --- /dev/null +++ b/Collaborateur_Epa_Back/.env @@ -0,0 +1,6 @@ +DATABASE_HOSTNAME=localhost +DATABASE_PORT=3306 +DATABASE_NAME=collaborateur_epa +APP_DB_USERNAME=root +APP_DB_PASSWORD=root +APP_DB_ROOT_PASSWORD=root diff --git a/Collaborateur_Epa_Back/docker-compose.dcproj b/Collaborateur_Epa_Back/docker-compose.dcproj new file mode 100644 index 0000000..0bf187e --- /dev/null +++ b/Collaborateur_Epa_Back/docker-compose.dcproj @@ -0,0 +1,20 @@ + + + + 2.1 + Linux + 815b6abd-7550-4d79-a53b-e84f4d4a7475 + LaunchBrowser + {Scheme}://localhost:{ServicePort}/swagger + espacecollab.backend.api + + + + + docker-compose.yml + + + + + + \ No newline at end of file diff --git a/Collaborateur_Epa_Back/docker-compose.override.yml b/Collaborateur_Epa_Back/docker-compose.override.yml new file mode 100644 index 0000000..f554f84 --- /dev/null +++ b/Collaborateur_Epa_Back/docker-compose.override.yml @@ -0,0 +1,14 @@ +version: '3.4' + +services: + espacecollab.backend.api: + environment: + - ASPNETCORE_ENVIRONMENT=Development + - ASPNETCORE_URLS=https://+:443;http://+:80 + - ASPNETCORE_Kestrel__Certificates__Default__Password=password + - ASPNETCORE_Kestrel__Certificates__Default__Path=${APPDATA}/ASP.NET/Https/espacecollab.pfx + ports: + - "8001:80" + - "8000:443" + volumes: + - ${APPDATA}/ASP.NET/Https:/root/.aspnet/https:ro \ No newline at end of file diff --git a/Collaborateur_Epa_Back/docker-compose.yml b/Collaborateur_Epa_Back/docker-compose.yml new file mode 100644 index 0000000..24d1bea --- /dev/null +++ b/Collaborateur_Epa_Back/docker-compose.yml @@ -0,0 +1,38 @@ +version: '3.4' + +volumes: + data-volume: {} + +services: + + maria_db: + image: "mariadb:10.7.1" + restart: always + ports: + - 3304:3306 + environment: + - MYSQL_DATABASE=${DATABASE_NAME} + - MYSQL_USERNAME=${APP_DB_USERNAME} + - MYSQL_PASSWORD=${APP_DB_PASSWORD} + - MYSQL_ROOT_PASSWORD=${APP_DB_ROOT_PASSWORD} + volumes: + - data-volume:/var/lib/mysql + + espacecollab.backend.api: + image: ${DOCKER_REGISTRY-}espacecollabbackendapi + build: + context: . + dockerfile: espacecollab.backend.api/Dockerfile + ports: + - "5000:80" + - "5001:443" + links: + - maria_db + environment: + - DATABASE_HOSTNAME=maria_db + - DATABASE_PORT=3306 + - DATABASE_NAME=${DATABASE_NAME} + - DATABASE_USERNAME=${APP_DB_USERNAME} + - DATABASE_PASSWORD=${APP_DB_PASSWORD} + + diff --git a/Collaborateur_Epa_Back/espacecollab.backend.api/Dockerfile b/Collaborateur_Epa_Back/espacecollab.backend.api/Dockerfile new file mode 100644 index 0000000..9d074f5 --- /dev/null +++ b/Collaborateur_Epa_Back/espacecollab.backend.api/Dockerfile @@ -0,0 +1,29 @@ +#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging. + +FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base +WORKDIR /app +EXPOSE 80 +EXPOSE 443 + +FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build +WORKDIR /src +COPY ["espacecollab.backend.api/espacecollab.backend.api.csproj", "espacecollab.backend.api/"] +COPY ["espacecollab.backend.appservices/espacecollab.backend.appservices.csproj", "espacecollab.backend.appservices/"] +COPY ["espacecollab.backend.appservices.dtos/espacecollab.backend.appservices.dtos.csproj", "espacecollab.backend.appservices.dtos/"] +COPY ["espacecollab.backend.infrastructure.sql.dtos/espacecollab.backend.infrastructure.sql.dtos.csproj", "espacecollab.backend.infrastructure.sql.dtos/"] +COPY ["espacecollab.backend.appservices.interfaces/espacecollab.backend.appservices.interfaces.csproj", "espacecollab.backend.appservices.interfaces/"] +COPY ["espacecollab.backend.infrastructure.sql/espacecollab.backend.infrastructure.sql.csproj", "espacecollab.backend.infrastructure.sql/"] +COPY ["espacecollab.backend.infrastructure.interfaces/espacecollab.backend.infrastructure.interfaces.csproj", "espacecollab.backend.infrastructure.interfaces/"] +COPY ["espacecollab.backend.infrastructure.fake/espacecollab.backend.infrastructure.fake.csproj", "espacecollab.backend.infrastructure.fake/"] +RUN dotnet restore "espacecollab.backend.api/espacecollab.backend.api.csproj" +COPY . . +WORKDIR "/src/espacecollab.backend.api" +RUN dotnet build "espacecollab.backend.api.csproj" -c Release -o /app/build + +FROM build AS publish +RUN dotnet publish "espacecollab.backend.api.csproj" -c Release -o /app/publish + +FROM base AS final +WORKDIR /app +COPY --from=publish /app/publish . +ENTRYPOINT ["dotnet", "espacecollab.backend.api.dll"] \ No newline at end of file diff --git a/Collaborateur_Epa_Back/espacecollab.backend.api/Properties/launchSettings.json b/Collaborateur_Epa_Back/espacecollab.backend.api/Properties/launchSettings.json index 631c563..8505599 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.api/Properties/launchSettings.json +++ b/Collaborateur_Epa_Back/espacecollab.backend.api/Properties/launchSettings.json @@ -1,4 +1,4 @@ -{ +{ "$schema": "https://json.schemastore.org/launchsettings.json", "iisSettings": { "windowsAuthentication": false, @@ -11,13 +11,13 @@ "profiles": { "espacecollab.backend.api": { "commandName": "Project", - "dotnetRunMessages": true, "launchBrowser": true, "launchUrl": "swagger", - "applicationUrl": "https://localhost:7125;http://localhost:5125", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" - } + }, + "applicationUrl": "https://localhost:8081;http://localhost:8080", + "dotnetRunMessages": true }, "IIS Express": { "commandName": "IISExpress", @@ -26,6 +26,13 @@ "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } + }, + "Docker": { + "commandName": "Docker", + "launchBrowser": true, + "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}/swagger", + "publishAllPorts": true, + "useSSL": true } } -} +} \ No newline at end of file diff --git a/Collaborateur_Epa_Back/espacecollab.backend.api/appsettings.json b/Collaborateur_Epa_Back/espacecollab.backend.api/appsettings.json index bc26e00..c7c63da 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.api/appsettings.json +++ b/Collaborateur_Epa_Back/espacecollab.backend.api/appsettings.json @@ -7,7 +7,7 @@ }, "AllowedHosts": "*", "Sql": { - "LoadFake": false, + "LoadFake": true, "ConnectionString": "server=localhost;user=root;password=root;database=collaborateur_epa" } } diff --git a/Collaborateur_Epa_Back/espacecollab.backend.api/espacecollab.backend.api.csproj b/Collaborateur_Epa_Back/espacecollab.backend.api/espacecollab.backend.api.csproj index 0c9099a..c417134 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.api/espacecollab.backend.api.csproj +++ b/Collaborateur_Epa_Back/espacecollab.backend.api/espacecollab.backend.api.csproj @@ -4,10 +4,14 @@ net6.0 enable enable + 5a7cf5e2-2bf7-4dae-aea9-2522da3cf955 + Linux + ..\docker-compose.dcproj + diff --git a/Collaborateur_Epa_Back/espacecollab.backend.sln b/Collaborateur_Epa_Back/espacecollab.backend.sln index cfbc75f..8230b4d 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.sln +++ b/Collaborateur_Epa_Back/espacecollab.backend.sln @@ -25,7 +25,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "espacecollab.backend.infras EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "espacecollab.backend.appservices.interfaces", "espacecollab.backend.appservices.interfaces\espacecollab.backend.appservices.interfaces.csproj", "{7872657E-46E2-44A1-AFA6-0D3B9E45084A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "espacecollab.backend.api.tests", "espacecollab.backend.api.tests\espacecollab.backend.api.tests.csproj", "{5EA7CAB6-B7A8-4A54-8A1D-774A376974CB}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "espacecollab.backend.api.tests", "espacecollab.backend.api.tests\espacecollab.backend.api.tests.csproj", "{5EA7CAB6-B7A8-4A54-8A1D-774A376974CB}" +EndProject +Project("{E53339B2-1760-4266-BCC7-CA923CBCF16C}") = "docker-compose", "docker-compose.dcproj", "{815B6ABD-7550-4D79-A53B-E84F4D4A7475}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -69,6 +71,10 @@ Global {5EA7CAB6-B7A8-4A54-8A1D-774A376974CB}.Debug|Any CPU.Build.0 = Debug|Any CPU {5EA7CAB6-B7A8-4A54-8A1D-774A376974CB}.Release|Any CPU.ActiveCfg = Release|Any CPU {5EA7CAB6-B7A8-4A54-8A1D-774A376974CB}.Release|Any CPU.Build.0 = Release|Any CPU + {815B6ABD-7550-4D79-A53B-E84F4D4A7475}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {815B6ABD-7550-4D79-A53B-E84F4D4A7475}.Debug|Any CPU.Build.0 = Debug|Any CPU + {815B6ABD-7550-4D79-A53B-E84F4D4A7475}.Release|Any CPU.ActiveCfg = Release|Any CPU + {815B6ABD-7550-4D79-A53B-E84F4D4A7475}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE From 514bacd4f673ad63153b392f7a39f5a5b06fb6c6 Mon Sep 17 00:00:00 2001 From: Clement FERRERE Date: Wed, 23 Feb 2022 17:44:17 +0100 Subject: [PATCH 2/3] =?UTF-8?q?dockerisation=20fonctionnelle=20mais=20cr?= =?UTF-8?q?=C3=A9ation=20de=20la=20base=20=C3=A0=20pr=C3=A9voir=20->=20scr?= =?UTF-8?q?ipt=20=C3=A0=20cr=C3=A9er=20et=20settings=20=C3=A0=20v=C3=A9rif?= =?UTF-8?q?ier?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Collaborateur_Epa_Back/docker-compose.dcproj | 1 - Collaborateur_Epa_Back/docker-compose.override.yml | 7 ++----- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/Collaborateur_Epa_Back/docker-compose.dcproj b/Collaborateur_Epa_Back/docker-compose.dcproj index 0bf187e..344a07b 100644 --- a/Collaborateur_Epa_Back/docker-compose.dcproj +++ b/Collaborateur_Epa_Back/docker-compose.dcproj @@ -9,7 +9,6 @@ espacecollab.backend.api - docker-compose.yml diff --git a/Collaborateur_Epa_Back/docker-compose.override.yml b/Collaborateur_Epa_Back/docker-compose.override.yml index f554f84..3c5310e 100644 --- a/Collaborateur_Epa_Back/docker-compose.override.yml +++ b/Collaborateur_Epa_Back/docker-compose.override.yml @@ -6,9 +6,6 @@ services: - ASPNETCORE_ENVIRONMENT=Development - ASPNETCORE_URLS=https://+:443;http://+:80 - ASPNETCORE_Kestrel__Certificates__Default__Password=password - - ASPNETCORE_Kestrel__Certificates__Default__Path=${APPDATA}/ASP.NET/Https/espacecollab.pfx - ports: - - "8001:80" - - "8000:443" + - ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx volumes: - - ${APPDATA}/ASP.NET/Https:/root/.aspnet/https:ro \ No newline at end of file + - ~/.aspnet/https:/https:ro \ No newline at end of file From 84ec30f541b921c1ffc9d67de806eca34633e5fe Mon Sep 17 00:00:00 2001 From: Clement FERRERE Date: Fri, 25 Feb 2022 10:28:35 +0100 Subject: [PATCH 3/3] =?UTF-8?q?Cr=C3=A9ation=20script=20SQL=20+=20fonction?= =?UTF-8?q?nement=20docker-compose?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Collaborateur_Epa_Back/docker-compose.yml | 9 +- .../espacecollab.backend.api/appsettings.json | 5 +- .../espacecollab.backend.sln | 5 + Collaborateur_Epa_Back/init_db.sql | 285 ++++++++++++++++++ 4 files changed, 297 insertions(+), 7 deletions(-) create mode 100644 Collaborateur_Epa_Back/init_db.sql diff --git a/Collaborateur_Epa_Back/docker-compose.yml b/Collaborateur_Epa_Back/docker-compose.yml index 24d1bea..c9f180c 100644 --- a/Collaborateur_Epa_Back/docker-compose.yml +++ b/Collaborateur_Epa_Back/docker-compose.yml @@ -5,11 +5,9 @@ volumes: services: - maria_db: + db: image: "mariadb:10.7.1" restart: always - ports: - - 3304:3306 environment: - MYSQL_DATABASE=${DATABASE_NAME} - MYSQL_USERNAME=${APP_DB_USERNAME} @@ -17,6 +15,7 @@ services: - MYSQL_ROOT_PASSWORD=${APP_DB_ROOT_PASSWORD} volumes: - data-volume:/var/lib/mysql + - ./init_db.sql:/docker-entrypoint-initdb.d/init.sql espacecollab.backend.api: image: ${DOCKER_REGISTRY-}espacecollabbackendapi @@ -27,9 +26,9 @@ services: - "5000:80" - "5001:443" links: - - maria_db + - db environment: - - DATABASE_HOSTNAME=maria_db + - DATABASE_HOSTNAME=db - DATABASE_PORT=3306 - DATABASE_NAME=${DATABASE_NAME} - DATABASE_USERNAME=${APP_DB_USERNAME} diff --git a/Collaborateur_Epa_Back/espacecollab.backend.api/appsettings.json b/Collaborateur_Epa_Back/espacecollab.backend.api/appsettings.json index c7c63da..5e85baf 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.api/appsettings.json +++ b/Collaborateur_Epa_Back/espacecollab.backend.api/appsettings.json @@ -7,7 +7,8 @@ }, "AllowedHosts": "*", "Sql": { - "LoadFake": true, - "ConnectionString": "server=localhost;user=root;password=root;database=collaborateur_epa" + "LoadFake": false, + "ConnectionString": "server=db;user=root;password=root;database=collaborateur_epa" + //"ConnectionString": "server=localhost;user=root;password=root;database=collaborateur_epa" } } diff --git a/Collaborateur_Epa_Back/espacecollab.backend.sln b/Collaborateur_Epa_Back/espacecollab.backend.sln index 8230b4d..3def954 100644 --- a/Collaborateur_Epa_Back/espacecollab.backend.sln +++ b/Collaborateur_Epa_Back/espacecollab.backend.sln @@ -29,6 +29,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "espacecollab.backend.api.te EndProject Project("{E53339B2-1760-4266-BCC7-CA923CBCF16C}") = "docker-compose", "docker-compose.dcproj", "{815B6ABD-7550-4D79-A53B-E84F4D4A7475}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "9 Database", "9 Database", "{4C74D622-BEC1-41C9-95F1-7C44375B531B}" + ProjectSection(SolutionItems) = preProject + init_db.sql = init_db.sql + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU diff --git a/Collaborateur_Epa_Back/init_db.sql b/Collaborateur_Epa_Back/init_db.sql new file mode 100644 index 0000000..4100fc7 --- /dev/null +++ b/Collaborateur_Epa_Back/init_db.sql @@ -0,0 +1,285 @@ +SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; +SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; +SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'; + + +CREATE SCHEMA IF NOT EXISTS `collaborateur_epa` DEFAULT CHARACTER SET latin1 ; +USE `collaborateur_epa` ; + +-- ----------------------------------------------------- +-- Table `collaborateur_epa`.`agence` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `collaborateur_epa`.`agence` ( + `Id` INT NOT NULL AUTO_INCREMENT, + `Name` VARCHAR(100) NOT NULL, + PRIMARY KEY (`Id`), + UNIQUE INDEX `Name` (`Name` ASC) VISIBLE) +ENGINE = InnoDB +AUTO_INCREMENT = 5 +DEFAULT CHARACTER SET = latin1; + + +-- ----------------------------------------------------- +-- Table `collaborateur_epa`.`businessunit` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `collaborateur_epa`.`businessunit` ( + `Id` INT NOT NULL AUTO_INCREMENT, + `Name` VARCHAR(100) NOT NULL, + `AgenceId` INT NOT NULL, + PRIMARY KEY (`Id`), + UNIQUE INDEX `Name` (`Name` ASC) VISIBLE, + INDEX `FK_BUSINESS_UNIT_AGENCE` (`AgenceId` ASC) VISIBLE, + CONSTRAINT `FK_BUSINESS_UNIT_AGENCE` + FOREIGN KEY (`AgenceId`) + REFERENCES `collaborateur_epa`.`agence` (`Id`)) +ENGINE = InnoDB +AUTO_INCREMENT = 2 +DEFAULT CHARACTER SET = latin1; + + +-- ----------------------------------------------------- +-- Table `collaborateur_epa`.`collaborateur` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `collaborateur_epa`.`collaborateur` ( + `Id` INT NOT NULL AUTO_INCREMENT, + `Name` VARCHAR(100) NOT NULL, + `FirstName` VARCHAR(100) NOT NULL, + `BirthDate` DATE NOT NULL, + `Gender` ENUM('masculin', 'feminin', 'autre') NOT NULL DEFAULT 'masculin', + `Status` ENUM('cadre', 'noncadre', 'alternant', 'stagiaire') NOT NULL DEFAULT 'noncadre', + `ChildrenNumber` SMALLINT NOT NULL, + `Address` VARCHAR(200) NOT NULL, + `Telephone` VARCHAR(15) NOT NULL, + `PersonalMail` VARCHAR(100) NOT NULL, + `ApsideMail` VARCHAR(100) NOT NULL, + `ResignationDate` DATE NULL DEFAULT NULL, + `BusinessUnitId` INT NOT NULL, + `ReferrerId` INT NULL DEFAULT NULL, + PRIMARY KEY (`Id`), + INDEX `FK_COLLABORATEUR_BUSINESSUNIT` (`BusinessUnitId` ASC) VISIBLE, + INDEX `FK_COLLABORATEUR_PARRAIN` (`ReferrerId` ASC) VISIBLE, + CONSTRAINT `FK_COLLABORATEUR_BUSINESSUNIT` + FOREIGN KEY (`BusinessUnitId`) + REFERENCES `collaborateur_epa`.`businessunit` (`Id`), + CONSTRAINT `FK_COLLABORATEUR_PARRAIN` + FOREIGN KEY (`ReferrerId`) + REFERENCES `collaborateur_epa`.`collaborateur` (`Id`)) +ENGINE = InnoDB +AUTO_INCREMENT = 13 +DEFAULT CHARACTER SET = latin1; + + +-- ----------------------------------------------------- +-- Table `collaborateur_epa`.`collaborateurappartientbusinessunit` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `collaborateur_epa`.`collaborateurappartientbusinessunit` ( + `CollaborateurId` INT NOT NULL, + `BusinessUnitId` INT NOT NULL, + PRIMARY KEY (`CollaborateurId`, `BusinessUnitId`), + INDEX `FK_BUSINESS_UNIT_COLLABORATEUR` (`BusinessUnitId` ASC) VISIBLE, + CONSTRAINT `FK_BUSINESS_UNIT_COLLABORATEUR` + FOREIGN KEY (`BusinessUnitId`) + REFERENCES `collaborateur_epa`.`businessunit` (`Id`), + CONSTRAINT `FK_COLLABORATEUR_BUSINESS_UNIT` + FOREIGN KEY (`CollaborateurId`) + REFERENCES `collaborateur_epa`.`collaborateur` (`Id`)) +ENGINE = InnoDB +DEFAULT CHARACTER SET = latin1; + + +-- ----------------------------------------------------- +-- Table `collaborateur_epa`.`projet` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `collaborateur_epa`.`projet` ( + `Id` INT NOT NULL AUTO_INCREMENT, + `Name` VARCHAR(100) NOT NULL, + `Client` VARCHAR(100) NOT NULL, + `Description` VARCHAR(100) NOT NULL, + `StartingDate` DATE NOT NULL, + `EndingDate` DATE NOT NULL, + PRIMARY KEY (`Id`), + UNIQUE INDEX `Name` (`Name` ASC) VISIBLE) +ENGINE = InnoDB +DEFAULT CHARACTER SET = latin1; + + +-- ----------------------------------------------------- +-- Table `collaborateur_epa`.`collaborateurcollaboreprojet` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `collaborateur_epa`.`collaborateurcollaboreprojet` ( + `CollaborateurId` INT NOT NULL, + `ProjetId` INT NOT NULL, + `isManager` TINYINT(1) NOT NULL, + PRIMARY KEY (`CollaborateurId`, `ProjetId`), + INDEX `FK_PROJET_COLLABORE_COLLABORATEUR` (`ProjetId` ASC) VISIBLE, + CONSTRAINT `FK_COLLABORATEUR_COLLABORE_PROJET` + FOREIGN KEY (`CollaborateurId`) + REFERENCES `collaborateur_epa`.`collaborateur` (`Id`), + CONSTRAINT `FK_PROJET_COLLABORE_COLLABORATEUR` + FOREIGN KEY (`ProjetId`) + REFERENCES `collaborateur_epa`.`projet` (`Id`)) +ENGINE = InnoDB +DEFAULT CHARACTER SET = latin1; + + +-- ----------------------------------------------------- +-- Table `collaborateur_epa`.`periodeessai` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `collaborateur_epa`.`periodeessai` ( + `Id` INT NOT NULL AUTO_INCREMENT, + `StartingDate` DATE NOT NULL, + `PlannedEndingDate` DATE NOT NULL, + `RealEndingDate` DATE NOT NULL, + `Comment` VARCHAR(100) NOT NULL, + `Issue` ENUM('VALIDEE', 'PROLONGEE_COLLAB', 'PROLONGEE_APSIDE', 'ARRETEE_COLLAB', 'ARRETEE_APSIDE') NOT NULL, + `CollaborateurId` INT NOT NULL, + PRIMARY KEY (`Id`), + INDEX `FK_COLLABORATEUR_PERIODEESSAI` (`CollaborateurId` ASC) VISIBLE, + CONSTRAINT `FK_COLLABORATEUR_PERIODEESSAI` + FOREIGN KEY (`CollaborateurId`) + REFERENCES `collaborateur_epa`.`collaborateur` (`Id`)) +ENGINE = InnoDB +DEFAULT CHARACTER SET = latin1; + + +-- ----------------------------------------------------- +-- Table `collaborateur_epa`.`collaborateureffectueperiodeessai` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `collaborateur_epa`.`collaborateureffectueperiodeessai` ( + `CollaborateurId` INT NOT NULL, + `PeriodeEssaiId` INT NOT NULL, + PRIMARY KEY (`CollaborateurId`, `PeriodeEssaiId`), + INDEX `FK_PERIODE_ESSAI_COLLABORATEUR` (`PeriodeEssaiId` ASC) VISIBLE, + CONSTRAINT `FK_COLLABORATEUR_PERIODE_ESSAI` + FOREIGN KEY (`CollaborateurId`) + REFERENCES `collaborateur_epa`.`collaborateur` (`Id`), + CONSTRAINT `FK_PERIODE_ESSAI_COLLABORATEUR` + FOREIGN KEY (`PeriodeEssaiId`) + REFERENCES `collaborateur_epa`.`periodeessai` (`Id`)) +ENGINE = InnoDB +DEFAULT CHARACTER SET = latin1; + + +-- ----------------------------------------------------- +-- Table `collaborateur_epa`.`fonction` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `collaborateur_epa`.`fonction` ( + `Id` INT NOT NULL, + `intitule` VARCHAR(100) NOT NULL, + PRIMARY KEY (`Id`), + UNIQUE INDEX `Id` (`Id` ASC) VISIBLE, + UNIQUE INDEX `intitule` (`intitule` ASC) VISIBLE) +ENGINE = InnoDB +DEFAULT CHARACTER SET = latin1; + + +-- ----------------------------------------------------- +-- Table `collaborateur_epa`.`collaborateurestfonction` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `collaborateur_epa`.`collaborateurestfonction` ( + `CollaborateurId` INT NOT NULL, + `FonctionId` INT NOT NULL, + PRIMARY KEY (`CollaborateurId`, `FonctionId`), + INDEX `FK_FONCTION_COLLABORATEUR` (`FonctionId` ASC) VISIBLE, + CONSTRAINT `FK_COLLABORATEUR_FONCTION` + FOREIGN KEY (`CollaborateurId`) + REFERENCES `collaborateur_epa`.`collaborateur` (`Id`), + CONSTRAINT `FK_FONCTION_COLLABORATEUR` + FOREIGN KEY (`FonctionId`) + REFERENCES `collaborateur_epa`.`fonction` (`Id`)) +ENGINE = InnoDB +DEFAULT CHARACTER SET = latin1; + + +-- ----------------------------------------------------- +-- Table `collaborateur_epa`.`technologie` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `collaborateur_epa`.`technologie` ( + `Id` INT NOT NULL, + `Name` VARCHAR(100) NOT NULL, + PRIMARY KEY (`Id`), + UNIQUE INDEX `Id` (`Id` ASC) VISIBLE, + UNIQUE INDEX `Name` (`Name` ASC) VISIBLE) +ENGINE = InnoDB +DEFAULT CHARACTER SET = latin1; + + +-- ----------------------------------------------------- +-- Table `collaborateur_epa`.`projetutilisetechnologie` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `collaborateur_epa`.`projetutilisetechnologie` ( + `ProjetId` INT NOT NULL, + `TechnologieId` INT NOT NULL, + PRIMARY KEY (`ProjetId`, `TechnologieId`), + INDEX `FK_TECHNOLOGIE_PROJET` (`TechnologieId` ASC) VISIBLE, + CONSTRAINT `FK_PROJET_TECHNOLOGIE` + FOREIGN KEY (`ProjetId`) + REFERENCES `collaborateur_epa`.`projet` (`Id`), + CONSTRAINT `FK_TECHNOLOGIE_PROJET` + FOREIGN KEY (`TechnologieId`) + REFERENCES `collaborateur_epa`.`technologie` (`Id`)) +ENGINE = InnoDB +DEFAULT CHARACTER SET = latin1; + + +-- ----------------------------------------------------- +-- Table `collaborateur_epa`.`referencement` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `collaborateur_epa`.`referencement` ( + `Id` INT NOT NULL AUTO_INCREMENT, + `StartingDate` DATE NOT NULL, + `EndingDate` DATE NOT NULL, + `ReferredId` INT NOT NULL, + `ReferrerId` INT NOT NULL, + PRIMARY KEY (`Id`), + INDEX `FK_COLLABORATEUR_REFERE` (`ReferredId` ASC) VISIBLE, + INDEX `FK_COLLABORATEUR_REFERENT` (`ReferrerId` ASC) VISIBLE, + CONSTRAINT `FK_COLLABORATEUR_REFERE` + FOREIGN KEY (`ReferredId`) + REFERENCES `collaborateur_epa`.`collaborateur` (`Id`), + CONSTRAINT `FK_COLLABORATEUR_REFERENT` + FOREIGN KEY (`ReferrerId`) + REFERENCES `collaborateur_epa`.`collaborateur` (`Id`)) +ENGINE = InnoDB +DEFAULT CHARACTER SET = latin1; + + +-- ----------------------------------------------------- +-- Table `collaborateur_epa`.`site` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `collaborateur_epa`.`site` ( + `Id` INT NOT NULL AUTO_INCREMENT, + `Name` VARCHAR(100) NOT NULL, + `Address` VARCHAR(200) NOT NULL, + `BusinessUnitId` INT NOT NULL, + PRIMARY KEY (`Id`), + UNIQUE INDEX `Name` (`Name` ASC) VISIBLE, + INDEX `FK_SITE_BUSINESS_UNIT` (`BusinessUnitId` ASC) VISIBLE, + CONSTRAINT `FK_SITE_BUSINESS_UNIT` + FOREIGN KEY (`BusinessUnitId`) + REFERENCES `collaborateur_epa`.`businessunit` (`Id`)) +ENGINE = InnoDB +DEFAULT CHARACTER SET = latin1; + + +-- ----------------------------------------------------- +-- Table `collaborateur_epa`.`sitedeveloppeprojet` +-- ----------------------------------------------------- +CREATE TABLE IF NOT EXISTS `collaborateur_epa`.`sitedeveloppeprojet` ( + `SiteId` INT NOT NULL, + `ProjetId` INT NOT NULL, + PRIMARY KEY (`SiteId`, `ProjetId`), + INDEX `FK_PROJET_SITE` (`ProjetId` ASC) VISIBLE, + CONSTRAINT `FK_PROJET_SITE` + FOREIGN KEY (`ProjetId`) + REFERENCES `collaborateur_epa`.`projet` (`Id`), + CONSTRAINT `FK_SITE_PROJET` + FOREIGN KEY (`SiteId`) + REFERENCES `collaborateur_epa`.`site` (`Id`)) +ENGINE = InnoDB +DEFAULT CHARACTER SET = latin1; + + +SET SQL_MODE=@OLD_SQL_MODE; +SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; +SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS; \ No newline at end of file