From 34cf9f56b383d8bb1866604f4e68583922b391dd Mon Sep 17 00:00:00 2001
From: Tom Rouillon <tom.rouillon3@etu.univ-lorraine.fr>
Date: Tue, 16 Jan 2024 15:38:52 +0100
Subject: [PATCH] Environnement du projet

---
 .env                           |   4 +
 .gitignore                     |   1 +
 Back_end/.env                  |   2 +-
 Back_end/compose.override.yaml |  14 --
 Back_end/compose.yaml          |  21 --
 docker-compose.yaml            |  50 +++++
 docker/nginx/default.conf      |  33 ++++
 docker/php/Dockerfile          |  16 ++
 docker/setup.sql               | 346 +++++++++++++++++++++++++++++++++
 9 files changed, 451 insertions(+), 36 deletions(-)
 create mode 100644 .env
 create mode 100644 .gitignore
 delete mode 100644 Back_end/compose.override.yaml
 delete mode 100644 Back_end/compose.yaml
 create mode 100644 docker-compose.yaml
 create mode 100644 docker/nginx/default.conf
 create mode 100644 docker/php/Dockerfile
 create mode 100644 docker/setup.sql

diff --git a/.env b/.env
new file mode 100644
index 0000000..c2eea96
--- /dev/null
+++ b/.env
@@ -0,0 +1,4 @@
+MYSQL_ROOT_PASSWORD=secret
+MYSQL_DATABASE=cocagne_db
+MYSQL_USER=jardin
+MYSQL_PASSWORD=bestJardinier
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..f75f913
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+mysql_data/
\ No newline at end of file
diff --git a/Back_end/.env b/Back_end/.env
index f75c3c0..9d2678c 100644
--- a/Back_end/.env
+++ b/Back_end/.env
@@ -26,7 +26,7 @@ APP_SECRET=f13d33213c1f5d6ea888c6f867c0e42c
 # DATABASE_URL="sqlite:///%kernel.project_dir%/var/data.db"
 # DATABASE_URL="mysql://app:!ChangeMe!@127.0.0.1:3306/app?serverVersion=8.0.32&charset=utf8mb4"
 # DATABASE_URL="mysql://app:!ChangeMe!@127.0.0.1:3306/app?serverVersion=10.11.2-MariaDB&charset=utf8mb4"
-DATABASE_URL="postgresql://app:!ChangeMe!@127.0.0.1:5432/app?serverVersion=15&charset=utf8"
+DATABASE_URL="mysql://symfony:symfony@database:3306/symfony_docker?serverVersion=15&charset=utf8"
 ###< doctrine/doctrine-bundle ###
 
 ###> symfony/messenger ###
diff --git a/Back_end/compose.override.yaml b/Back_end/compose.override.yaml
deleted file mode 100644
index fbefd50..0000000
--- a/Back_end/compose.override.yaml
+++ /dev/null
@@ -1,14 +0,0 @@
-version: '3'
-
-services:
-###> doctrine/doctrine-bundle ###
-  database:
-    ports:
-      - "5432"
-###< doctrine/doctrine-bundle ###
-
-###> symfony/mailer ###
-  mailer:
-    image: sj26/mailcatcher
-    ports: ["1025", "1080"]
-###< symfony/mailer ###
diff --git a/Back_end/compose.yaml b/Back_end/compose.yaml
deleted file mode 100644
index 1067b9c..0000000
--- a/Back_end/compose.yaml
+++ /dev/null
@@ -1,21 +0,0 @@
-version: '3'
-
-services:
-###> doctrine/doctrine-bundle ###
-  database:
-    image: postgres:${POSTGRES_VERSION:-15}-alpine
-    environment:
-      POSTGRES_DB: ${POSTGRES_DB:-app}
-      # You should definitely change the password in production
-      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-!ChangeMe!}
-      POSTGRES_USER: ${POSTGRES_USER:-app}
-    volumes:
-      - database_data:/var/lib/postgresql/data:rw
-      # You may use a bind-mounted host directory instead, so that it is harder to accidentally remove the volume and lose all your data!
-      # - ./docker/db/data:/var/lib/postgresql/data:rw
-###< doctrine/doctrine-bundle ###
-
-volumes:
-###> doctrine/doctrine-bundle ###
-  database_data:
-###< doctrine/doctrine-bundle ###
diff --git a/docker-compose.yaml b/docker-compose.yaml
new file mode 100644
index 0000000..106b4dd
--- /dev/null
+++ b/docker-compose.yaml
@@ -0,0 +1,50 @@
+version: '3.8'
+
+services:
+  database:
+    container_name: database
+    image: mysql:8.0
+    command: --default-authentication-plugin=mysql_native_password
+    env_file:
+      - .env
+    ports:
+      - '3306:3306'
+    volumes:
+      - ./docker/setup.sql:/docker-entrypoint-initdb.d/setup.sql
+      - ./mysql_data:/var/lib/mysql
+
+  adminer:
+    container_name: adminer
+    image: adminer:latest
+    environment:
+      ADMINER_DEFAULT_SERVER: database
+    ports:
+      - '8081:8080'
+    depends_on:
+      - database
+
+  php:
+    container_name: php
+    build:
+      context: ./docker/php
+    ports:
+      - '9000:9000'
+    volumes:
+      - ./Back_end:/var/www/symfony_docker
+    depends_on:
+      - database
+
+  nginx:
+    container_name: nginx
+    image: nginx:stable-alpine
+    ports:
+      - '8080:80'
+    volumes:
+      - ./Back_end:/var/www/symfony_docker
+      - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
+    depends_on:
+      - php
+      - database
+
+volumes:
+  mysql_data:
\ No newline at end of file
diff --git a/docker/nginx/default.conf b/docker/nginx/default.conf
new file mode 100644
index 0000000..9fc2eb3
--- /dev/null
+++ b/docker/nginx/default.conf
@@ -0,0 +1,33 @@
+server {
+
+    listen 80;
+    index index.php;
+    server_name localhost;
+    root /var/www/symfony_docker/public;
+    error_log /var/log/nginx/project_error.log;
+    access_log /var/log/nginx/project_access.log;
+
+    location / {
+        try_files $uri /index.php$is_args$args;
+    }
+
+    location ~ ^/index\\.php(/|$) {
+        fastcgi_pass php:9000;
+        fastcgi_split_path_info ^(.+\\.php)(/.*)$;
+        include fastcgi_params;
+
+        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
+        fastcgi_param DOCUMENT_ROOT $realpath_root;
+
+        fastcgi_buffer_size 128k;
+        fastcgi_buffers 4 256k;
+        fastcgi_busy_buffers_size 256k;
+
+        internal;
+    }
+
+    location ~ \\.php$ {
+        return 404;
+    }
+
+}
diff --git a/docker/php/Dockerfile b/docker/php/Dockerfile
new file mode 100644
index 0000000..4e65337
--- /dev/null
+++ b/docker/php/Dockerfile
@@ -0,0 +1,16 @@
+FROM php:8.2-fpm
+
+
+RUN apt update && apt install -y zlib1g-dev g++ git libicu-dev zip libzip-dev zip \
+    && docker-php-ext-install intl opcache pdo pdo_mysql \
+    && pecl install apcu \
+    && docker-php-ext-enable apcu \
+    && docker-php-ext-configure zip \
+    && docker-php-ext-install zip
+
+WORKDIR /var/www/symfony_docker
+
+RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
+
+RUN curl -sS https://get.symfony.com/cli/installer | bash
+RUN mv /root/.symfony5/bin/symfony /usr/local/bin/symfony
\ No newline at end of file
diff --git a/docker/setup.sql b/docker/setup.sql
new file mode 100644
index 0000000..3928651
--- /dev/null
+++ b/docker/setup.sql
@@ -0,0 +1,346 @@
+-- MySQL Script generated by MySQL Workbench
+-- Mon Jan 15 15:26:34 2024
+-- Model: New Model    Version: 1.0
+-- MySQL Workbench Forward Engineering
+
+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';
+
+-- -----------------------------------------------------
+-- Schema cocagne_db
+-- -----------------------------------------------------
+
+-- -----------------------------------------------------
+-- Schema cocagne_db
+-- -----------------------------------------------------
+CREATE SCHEMA IF NOT EXISTS `cocagne_db` DEFAULT CHARACTER SET utf8 ;
+USE `cocagne_db` ;
+
+-- -----------------------------------------------------
+-- Table `cocagne_db`.`Adherent`
+-- -----------------------------------------------------
+CREATE TABLE IF NOT EXISTS `cocagne_db`.`Adherent` (
+  `id` INT NOT NULL,
+  `raisonSociale` VARCHAR(100) NULL,
+  `civilite` VARCHAR(10) NULL,
+  `nom` VARCHAR(45) NULL,
+  `prenom` VARCHAR(45) NULL,
+  `adresse` VARCHAR(100) NULL,
+  `codePostal` VARCHAR(10) NULL,
+  `ville` VARCHAR(45) NULL,
+  `telephone` VARCHAR(20) NULL,
+  `mail` VARCHAR(45) NULL,
+  `telephone2` VARCHAR(20) NULL,
+  `telephone3` VARCHAR(20) NULL,
+  `profession` VARCHAR(45) NULL,
+  `dateNaissance` DATE NULL,
+  `password` VARCHAR(200) NULL,
+  `datePremiereAdhesion` DATE NULL,
+  `dispenseAdhesion` TINYINT NULL,
+  `adhesionAJour` TINYINT NULL,
+  PRIMARY KEY (`id`))
+ENGINE = InnoDB;
+
+
+-- -----------------------------------------------------
+-- Table `cocagne_db`.`Groupe`
+-- -----------------------------------------------------
+CREATE TABLE IF NOT EXISTS `cocagne_db`.`Groupe` (
+  `idGroupe` INT NOT NULL,
+  `nom` VARCHAR(45) NULL,
+  `droit1` VARCHAR(45) NULL,
+  `droit2` VARCHAR(45) NULL,
+  `droit3` VARCHAR(45) NULL,
+  PRIMARY KEY (`idGroupe`))
+ENGINE = InnoDB;
+
+
+-- -----------------------------------------------------
+-- Table `cocagne_db`.`Structure`
+-- -----------------------------------------------------
+CREATE TABLE IF NOT EXISTS `cocagne_db`.`Structure` (
+  `idStructure` INT NOT NULL,
+  `nom` VARCHAR(45) NULL,
+  `ville` VARCHAR(45) NULL,
+  `raisonSoc` VARCHAR(45) NULL,
+  `siege` VARCHAR(45) NULL,
+  `adresse` VARCHAR(45) NULL,
+  `telephone` VARCHAR(20) NULL,
+  `mail` VARCHAR(45) NULL,
+  `nomContact` VARCHAR(45) NULL,
+  `siteWeb` VARCHAR(100) NULL,
+  PRIMARY KEY (`idStructure`))
+ENGINE = InnoDB;
+
+
+-- -----------------------------------------------------
+-- Table `cocagne_db`.`Jour_calendrier`
+-- -----------------------------------------------------
+CREATE TABLE IF NOT EXISTS `cocagne_db`.`Jour_calendrier` (
+  `idJour_calendrier` INT NOT NULL,
+  `date` DATE NULL,
+  `livrable` TINYINT NULL,
+  `Structure_id` INT NOT NULL,
+  PRIMARY KEY (`idJour_calendrier`, `Structure_id`),
+  INDEX `fk_Jour_calendrier_Structure1_idx` (`Structure_id` ASC) VISIBLE,
+  CONSTRAINT `fk_Jour_calendrier_Structure1`
+    FOREIGN KEY (`Structure_id`)
+    REFERENCES `cocagne_db`.`Structure` (`idStructure`)
+    ON DELETE NO ACTION
+    ON UPDATE NO ACTION)
+ENGINE = InnoDB;
+
+
+-- -----------------------------------------------------
+-- Table `cocagne_db`.`Tournee`
+-- -----------------------------------------------------
+CREATE TABLE IF NOT EXISTS `cocagne_db`.`Tournee` (
+  `idTournee` INT NOT NULL,
+  `jourPreparation` DATE NULL,
+  `Jour_calendrier_id` INT NOT NULL,
+  PRIMARY KEY (`idTournee`, `Jour_calendrier_id`),
+  INDEX `fk_Tournee_Jour_calendrier1_idx` (`Jour_calendrier_id` ASC) VISIBLE,
+  CONSTRAINT `fk_Tournee_Jour_calendrier1`
+    FOREIGN KEY (`Jour_calendrier_id`)
+    REFERENCES `cocagne_db`.`Jour_calendrier` (`idJour_calendrier`)
+    ON DELETE NO ACTION
+    ON UPDATE NO ACTION)
+ENGINE = InnoDB;
+
+
+-- -----------------------------------------------------
+-- Table `cocagne_db`.`Point_de_depot`
+-- -----------------------------------------------------
+CREATE TABLE IF NOT EXISTS `cocagne_db`.`Point_de_depot` (
+  `idPoint_de_depot` INT NOT NULL,
+  `adresse` VARCHAR(100) NULL,
+  `codePostal` VARCHAR(10) NULL,
+  `ville` VARCHAR(45) NULL,
+  `telephone` VARCHAR(20) NULL,
+  `nomReferent` VARCHAR(45) NULL,
+  `mailReferent` VARCHAR(45) NULL,
+  `telReferent` VARCHAR(20) NULL,
+  `presentation` VARCHAR(300) NULL,
+  `photo` BLOB NULL,
+  `creneauLivraison` VARCHAR(45) NULL,
+  `creneauRecupPaniers` VARCHAR(45) NULL,
+  `Structure_id` INT NOT NULL,
+  PRIMARY KEY (`idPoint_de_depot`, `Structure_id`),
+  INDEX `fk_Point_de_depot_Structure1_idx` (`Structure_id` ASC) VISIBLE,
+  CONSTRAINT `fk_Point_de_depot_Structure1`
+    FOREIGN KEY (`Structure_id`)
+    REFERENCES `cocagne_db`.`Structure` (`idStructure`)
+    ON DELETE NO ACTION
+    ON UPDATE NO ACTION)
+ENGINE = InnoDB;
+
+
+-- -----------------------------------------------------
+-- Table `cocagne_db`.`Unite`
+-- -----------------------------------------------------
+CREATE TABLE IF NOT EXISTS `cocagne_db`.`Unite` (
+  `idUnite` INT NOT NULL,
+  `nom` VARCHAR(20) NULL,
+  `nbDecimal` INT NULL,
+  PRIMARY KEY (`idUnite`))
+ENGINE = InnoDB;
+
+
+-- -----------------------------------------------------
+-- Table `cocagne_db`.`Frequence_type`
+-- -----------------------------------------------------
+CREATE TABLE IF NOT EXISTS `cocagne_db`.`Frequence_type` (
+  `idFrequence_type` INT NOT NULL,
+  `debut` DATETIME NULL,
+  `fin` DATETIME NULL,
+  `nom` VARCHAR(45) NULL,
+  PRIMARY KEY (`idFrequence_type`))
+ENGINE = InnoDB;
+
+
+-- -----------------------------------------------------
+-- Table `cocagne_db`.`Panier`
+-- -----------------------------------------------------
+CREATE TABLE IF NOT EXISTS `cocagne_db`.`Panier` (
+  `idPanier` INT NOT NULL,
+  `nom` VARCHAR(45) NULL,
+  `photo` BLOB NULL,
+  `description` VARCHAR(200) NULL,
+  `Unite_idUnite` INT NOT NULL,
+  `Frequence_type_id` INT NOT NULL,
+  PRIMARY KEY (`idPanier`, `Unite_idUnite`, `Frequence_type_id`),
+  INDEX `fk_Panier_Unite1_idx` (`Unite_idUnite` ASC) VISIBLE,
+  INDEX `fk_Panier_Frequence_type1_idx` (`Frequence_type_id` ASC) VISIBLE,
+  CONSTRAINT `fk_Panier_Unite1`
+    FOREIGN KEY (`Unite_idUnite`)
+    REFERENCES `cocagne_db`.`Unite` (`idUnite`)
+    ON DELETE NO ACTION
+    ON UPDATE NO ACTION,
+  CONSTRAINT `fk_Panier_Frequence_type1`
+    FOREIGN KEY (`Frequence_type_id`)
+    REFERENCES `cocagne_db`.`Frequence_type` (`idFrequence_type`)
+    ON DELETE NO ACTION
+    ON UPDATE NO ACTION)
+ENGINE = InnoDB;
+
+
+-- -----------------------------------------------------
+-- Table `cocagne_db`.`periode`
+-- -----------------------------------------------------
+CREATE TABLE IF NOT EXISTS `cocagne_db`.`periode` (
+  `idperiode` INT NOT NULL,
+  `debut` DATE NULL,
+  `fin` DATE NULL,
+  PRIMARY KEY (`idperiode`))
+ENGINE = InnoDB;
+
+
+-- -----------------------------------------------------
+-- Table `cocagne_db`.`Abonnement`
+-- -----------------------------------------------------
+CREATE TABLE IF NOT EXISTS `cocagne_db`.`Abonnement` (
+  `idAbonnement` INT NOT NULL,
+  `Panier_idPanier` INT NOT NULL,
+  PRIMARY KEY (`idAbonnement`, `Panier_idPanier`),
+  INDEX `fk_Abonnement_Panier1_idx` (`Panier_idPanier` ASC) VISIBLE,
+  CONSTRAINT `fk_Abonnement_Panier1`
+    FOREIGN KEY (`Panier_idPanier`)
+    REFERENCES `cocagne_db`.`Panier` (`idPanier`)
+    ON DELETE NO ACTION
+    ON UPDATE NO ACTION)
+ENGINE = InnoDB;
+
+
+-- -----------------------------------------------------
+-- Table `cocagne_db`.`Adherent_souscrit_Abonnement`
+-- -----------------------------------------------------
+CREATE TABLE IF NOT EXISTS `cocagne_db`.`Adherent_souscrit_Abonnement` (
+  `Adherent_id` INT NOT NULL,
+  `Abonnement_idAbonnement` INT NOT NULL,
+  PRIMARY KEY (`Adherent_id`, `Abonnement_idAbonnement`),
+  INDEX `fk_Adherent_has_Abonnement_Abonnement1_idx` (`Abonnement_idAbonnement` ASC) VISIBLE,
+  INDEX `fk_Adherent_has_Abonnement_Adherent1_idx` (`Adherent_id` ASC) VISIBLE,
+  CONSTRAINT `fk_Adherent_has_Abonnement_Adherent1`
+    FOREIGN KEY (`Adherent_id`)
+    REFERENCES `cocagne_db`.`Adherent` (`id`)
+    ON DELETE NO ACTION
+    ON UPDATE NO ACTION,
+  CONSTRAINT `fk_Adherent_has_Abonnement_Abonnement1`
+    FOREIGN KEY (`Abonnement_idAbonnement`)
+    REFERENCES `cocagne_db`.`Abonnement` (`idAbonnement`)
+    ON DELETE NO ACTION
+    ON UPDATE NO ACTION)
+ENGINE = InnoDB;
+
+
+-- -----------------------------------------------------
+-- Table `cocagne_db`.`Ordre_Point_de_depot_Tournee`
+-- -----------------------------------------------------
+CREATE TABLE IF NOT EXISTS `cocagne_db`.`Ordre_Point_de_depot_Tournee` (
+  `Point_de_depot_id` INT NOT NULL,
+  `Tournee_idTournee` INT NOT NULL,
+  `numOrdre` INT NULL,
+  PRIMARY KEY (`Point_de_depot_id`, `Tournee_idTournee`),
+  INDEX `fk_Point_de_depot_has_Tournee_Tournee1_idx` (`Tournee_idTournee` ASC) VISIBLE,
+  INDEX `fk_Point_de_depot_has_Tournee_Point_de_depot1_idx` (`Point_de_depot_id` ASC) VISIBLE,
+  CONSTRAINT `fk_Point_de_depot_has_Tournee_Point_de_depot1`
+    FOREIGN KEY (`Point_de_depot_id`)
+    REFERENCES `cocagne_db`.`Point_de_depot` (`idPoint_de_depot`)
+    ON DELETE NO ACTION
+    ON UPDATE NO ACTION,
+  CONSTRAINT `fk_Point_de_depot_has_Tournee_Tournee1`
+    FOREIGN KEY (`Tournee_idTournee`)
+    REFERENCES `cocagne_db`.`Tournee` (`idTournee`)
+    ON DELETE NO ACTION
+    ON UPDATE NO ACTION)
+ENGINE = InnoDB;
+
+
+-- -----------------------------------------------------
+-- Table `cocagne_db`.`Adherent_Appartient_Groupe`
+-- -----------------------------------------------------
+CREATE TABLE IF NOT EXISTS `cocagne_db`.`Adherent_Appartient_Groupe` (
+  `Adherent_id` INT NOT NULL,
+  `Groupe_id` INT NOT NULL,
+  PRIMARY KEY (`Adherent_id`, `Groupe_id`),
+  INDEX `fk_Adherent_has_Groupe_Groupe1_idx` (`Groupe_id` ASC) VISIBLE,
+  INDEX `fk_Adherent_has_Groupe_Adherent1_idx` (`Adherent_id` ASC) VISIBLE,
+  CONSTRAINT `fk_Adherent_has_Groupe_Adherent1`
+    FOREIGN KEY (`Adherent_id`)
+    REFERENCES `cocagne_db`.`Adherent` (`id`)
+    ON DELETE NO ACTION
+    ON UPDATE NO ACTION,
+  CONSTRAINT `fk_Adherent_has_Groupe_Groupe1`
+    FOREIGN KEY (`Groupe_id`)
+    REFERENCES `cocagne_db`.`Groupe` (`idGroupe`)
+    ON DELETE NO ACTION
+    ON UPDATE NO ACTION)
+ENGINE = InnoDB;
+
+
+-- -----------------------------------------------------
+-- Table `cocagne_db`.`Livraison`
+-- -----------------------------------------------------
+CREATE TABLE IF NOT EXISTS `cocagne_db`.`Livraison` (
+  `idLivraison` INT NOT NULL,
+  `Tournee_idTournee` INT NOT NULL,
+  `Abonnement_id` INT NOT NULL,
+  `Point_de_depot_id` INT NOT NULL,
+  PRIMARY KEY (`idLivraison`, `Tournee_idTournee`, `Abonnement_id`, `Point_de_depot_id`),
+  INDEX `fk_Livraison_Tournee1_idx` (`Tournee_idTournee` ASC) VISIBLE,
+  INDEX `fk_Livraison_Abonnement1_idx` (`Abonnement_id` ASC) VISIBLE,
+  INDEX `fk_Livraison_Point_de_depot1_idx` (`Point_de_depot_id` ASC) VISIBLE,
+  CONSTRAINT `fk_Livraison_Tournee1`
+    FOREIGN KEY (`Tournee_idTournee`)
+    REFERENCES `cocagne_db`.`Tournee` (`idTournee`)
+    ON DELETE NO ACTION
+    ON UPDATE NO ACTION,
+  CONSTRAINT `fk_Livraison_Abonnement1`
+    FOREIGN KEY (`Abonnement_id`)
+    REFERENCES `cocagne_db`.`Abonnement` (`idAbonnement`)
+    ON DELETE NO ACTION
+    ON UPDATE NO ACTION,
+  CONSTRAINT `fk_Livraison_Point_de_depot1`
+    FOREIGN KEY (`Point_de_depot_id`)
+    REFERENCES `cocagne_db`.`Point_de_depot` (`idPoint_de_depot`)
+    ON DELETE NO ACTION
+    ON UPDATE NO ACTION)
+ENGINE = InnoDB;
+
+
+-- -----------------------------------------------------
+-- Table `cocagne_db`.`Adhesion`
+-- -----------------------------------------------------
+CREATE TABLE IF NOT EXISTS `cocagne_db`.`Adhesion` (
+  `periode_id` INT NOT NULL,
+  `Structure_id` INT NOT NULL,
+  `Adherent_id` INT NOT NULL,
+  `type` VARCHAR(45) NULL,
+  `prix` FLOAT NULL,
+  `dateCharniere` DATE NULL,
+  `active` TINYINT NULL,
+  PRIMARY KEY (`periode_id`, `Structure_id`, `Adherent_id`),
+  INDEX `fk_Adhesion_Structure1_idx` (`Structure_id` ASC) VISIBLE,
+  INDEX `fk_Adhesion_Adherent1_idx` (`Adherent_id` ASC) VISIBLE,
+  CONSTRAINT `fk_Adhesion_periode1`
+    FOREIGN KEY (`periode_id`)
+    REFERENCES `cocagne_db`.`periode` (`idperiode`)
+    ON DELETE NO ACTION
+    ON UPDATE NO ACTION,
+  CONSTRAINT `fk_Adhesion_Structure1`
+    FOREIGN KEY (`Structure_id`)
+    REFERENCES `cocagne_db`.`Structure` (`idStructure`)
+    ON DELETE NO ACTION
+    ON UPDATE NO ACTION,
+  CONSTRAINT `fk_Adhesion_Adherent1`
+    FOREIGN KEY (`Adherent_id`)
+    REFERENCES `cocagne_db`.`Adherent` (`id`)
+    ON DELETE NO ACTION
+    ON UPDATE NO ACTION)
+ENGINE = InnoDB;
+
+
+SET SQL_MODE=@OLD_SQL_MODE;
+SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
+SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
-- 
GitLab