diff --git a/data/README.md b/data/README.md index 423da8b27..d585b4c14 100644 --- a/data/README.md +++ b/data/README.md @@ -23,6 +23,16 @@ data/input_data/ └── views ``` +# Initialisation de la base de données + +Pré-requis : avoir configuré et initialisé votre base de données de Webapp comme précisé dans le README.md de la racine. + +Sur un poste de dev, depuis le répertoire data : + +```bash +npx prisma migrate dev +``` + # Schéma des flux de données Ce document souhaite poser les bases des flux de données alimentant l'application [Pilote 2](). @Fabien ajouter lien vers l'app diff --git a/prisma/migrations/20221201133748_init/migration.sql b/data/prisma/migrations/20221202142049_init/migration.sql similarity index 55% rename from prisma/migrations/20221201133748_init/migration.sql rename to data/prisma/migrations/20221202142049_init/migration.sql index f871b1a90..571373a70 100644 --- a/prisma/migrations/20221201133748_init/migration.sql +++ b/data/prisma/migrations/20221202142049_init/migration.sql @@ -1,8 +1,5 @@ --- CreateSchema -CREATE SCHEMA IF NOT EXISTS "raw_data"; - -- CreateTable -CREATE TABLE "raw_data"."metadata_chantier" ( +CREATE TABLE "metadata_chantier" ( "chantier_id" TEXT NOT NULL, "ch_code" TEXT, "ch_descr" TEXT, @@ -19,7 +16,7 @@ CREATE TABLE "raw_data"."metadata_chantier" ( ); -- CreateTable -CREATE TABLE "raw_data"."metadata_perimetre" ( +CREATE TABLE "metadata_perimetre" ( "perimetre_id" TEXT NOT NULL, "per_nom" TEXT NOT NULL, "per_short" TEXT, @@ -27,20 +24,3 @@ CREATE TABLE "raw_data"."metadata_perimetre" ( CONSTRAINT "metadata_perimetre_pkey" PRIMARY KEY ("perimetre_id") ); - --- CreateTable -CREATE TABLE "public"."chantier" ( - "id" TEXT NOT NULL, - "nom" TEXT NOT NULL, - "id_perimetre" TEXT NOT NULL, - - CONSTRAINT "chantier_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "public"."perimetre" ( - "id" TEXT NOT NULL, - "nom" TEXT NOT NULL, - - CONSTRAINT "perimetre_pkey" PRIMARY KEY ("id") -); diff --git a/data/prisma/migrations/migration_lock.toml b/data/prisma/migrations/migration_lock.toml new file mode 100644 index 000000000..fbffa92c2 --- /dev/null +++ b/data/prisma/migrations/migration_lock.toml @@ -0,0 +1,3 @@ +# Please do not edit this file manually +# It should be added in your version-control system (i.e. Git) +provider = "postgresql" \ No newline at end of file diff --git a/data/prisma/schema.prisma b/data/prisma/schema.prisma new file mode 100644 index 000000000..7c6e3b08e --- /dev/null +++ b/data/prisma/schema.prisma @@ -0,0 +1,32 @@ +// This is your Prisma schema file, +// learn more about it in the docs: https://pris.ly/d/prisma-schema + +generator client { + provider = "prisma-client-js" +} + +datasource db { + provider = "postgresql" + url = env("ELT_DATABASE_URL") +} + +model metadata_chantier { + chantier_id String @id + ch_code String? + ch_descr String? + ch_nom String + ch_ppg String + ch_perseverant String? + porteur_shorts_noDAC String + porteur_ids_noDAC String + porteur_shorts_DAC String? + porteur_ids_DAC String? + ch_per String +} + +model metadata_perimetre { + perimetre_id String @id + per_nom String + per_short String? + per_picto String? +} diff --git a/data/prisma/seed.ts b/data/prisma/seed.ts new file mode 100644 index 000000000..952c77e14 --- /dev/null +++ b/data/prisma/seed.ts @@ -0,0 +1,15 @@ +import { PrismaClient } from '@prisma/client'; + +const prisma = new PrismaClient(); + +async function main() { +} +main() + .then(async () => { + await prisma.$disconnect(); + }) + .catch(async (error) => { + console.error(error); + await prisma.$disconnect(); + process.exit(1); + }); diff --git a/package.json b/package.json index d6f58774c..29a92307e 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "test:server": "npm run test:server:unit && npm run test:server:integration", "test:server:unit": "jest src/server/.*.unit.test.* src/utils/.*.unit.test.*", "test:server:integration": "jest --config=jest.integration.config.js src/server/.*.integration.test.*", - "database:init": "prisma db execute --file scripts/drop.sql && prisma migrate reset" + "database:init": "prisma migrate reset" }, "browserslist": { "production": [ diff --git a/prisma/migrations/20221202143013_init/migration.sql b/prisma/migrations/20221202143013_init/migration.sql new file mode 100644 index 000000000..366072bb4 --- /dev/null +++ b/prisma/migrations/20221202143013_init/migration.sql @@ -0,0 +1,16 @@ +-- CreateTable +CREATE TABLE "chantier" ( + "id" TEXT NOT NULL, + "nom" TEXT NOT NULL, + "id_perimetre" TEXT NOT NULL, + + CONSTRAINT "chantier_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "perimetre" ( + "id" TEXT NOT NULL, + "nom" TEXT NOT NULL, + + CONSTRAINT "perimetre_pkey" PRIMARY KEY ("id") +); diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 64fb12e4f..d7b84ee4b 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -3,51 +3,20 @@ generator client { provider = "prisma-client-js" - previewFeatures = ["multiSchema"] } datasource db { provider = "postgresql" url = env("DATABASE_URL") - schemas = ["raw_data", "public"] -} - -model metadata_chantier { - chantier_id String @id - ch_code String? - ch_descr String? - ch_nom String - ch_ppg String - ch_perseverant String? - porteur_shorts_noDAC String - porteur_ids_noDAC String - porteur_shorts_DAC String? - porteur_ids_DAC String? - ch_per String - - @@schema("raw_data") -} - -model metadata_perimetre { - perimetre_id String @id - per_nom String - per_short String? - per_picto String? - - @@schema("raw_data") } model chantier { id String @id nom String id_perimetre String - - @@schema("public") } model perimetre { id String @id nom String - - @@schema("public") } diff --git a/scripts/drop_raw_data.sql b/scripts/drop_raw_data.sql deleted file mode 100644 index 53d34c3d1..000000000 --- a/scripts/drop_raw_data.sql +++ /dev/null @@ -1 +0,0 @@ -drop schema if exists raw_data cascade;