diff --git a/.github/workflows/api.yml b/.github/workflows/api.yml
index 787a25727a72c31bf7bb67625d31b76d4cd7b720..0b1df53342877bfb76ab23aa7c97604f585c010f 100644
--- a/.github/workflows/api.yml
+++ b/.github/workflows/api.yml
@@ -98,8 +98,55 @@ jobs:
           with:
             token: ${{ secrets.CODECOV_TOKEN }}
             flags: api-integration, api
+  check-queries:
+      runs-on: ubuntu-latest
+      services:
+        postgres:
+          image: postgis/postgis:15-3.3
+          env:
+            POSTGRES_USER: postgres
+            POSTGRES_PASSWORD: password
+            POSTGRES_DB: camino
+            PGUSER: postgres
+            PGPASSWORD: password
+          options: >-
+            --health-cmd pg_isready
+            --health-interval 10s
+            --health-timeout 5s
+            --health-retries 5
+          ports:
+            # Maps tcp port 5432 on service container to the host
+            - 5432:5432
+      steps:
+        - name: Checkout
+          uses: actions/checkout@v3
+        - name: Use Node.js
+          uses: actions/setup-node@v3
+          with:
+            node-version: '19.1'
+            cache: 'npm'
+        - name: Npm install
+          run: make install
+
+        - name: Migrate database and check queries
+          run: | 
+            make db/migrate
+            make db/check-queries
+            if [ ! -z  "$(git status --porcelain)" ]; then 
+            echo "Lancer 'make db/check-queries' sur sa machine et commiter les changements"
+            echo "BEGIN Git diff"
+            git diff
+            echo "END Git diff"
+            exit 1; 
+            fi
+          env:
+            PGHOST: localhost
+            PGPORT: 5432
+            PGUSER: postgres
+            PGPASSWORD: password  
+            PGDATABASE: camino   
   build:
-    needs: [unit-test, integration-test, lint, type]
+    needs: [unit-test, integration-test, lint, type, check-queries]
     runs-on: ubuntu-latest
 
     steps:
diff --git a/.prettierignore b/.prettierignore
index ebbe6c349228d1d2532b738c7a42a5bbc924bbf0..2cd852728d004d3839bbc3593118af712fd9d17c 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -1,14 +1,11 @@
-packages/ui/dist/**
-packages/ui/tests/unit/coverage/**
-packages/ui/src/styles/icons/icons.css
-packages/ui/src/styles/system/forms.css
-packages/ui/src/styles/settings.css
 packages/api/api-cache
 packages/api/backups
 packages/api/coverage
 packages/api/dist
 packages/api/docs
 packages/api/files
+packages/api/node_modules
 packages/api/sources
 packages/api/CHANGELOG.md
 packages/api/**/*.json
+packages/api/**/*.queries.types.ts
\ No newline at end of file
diff --git a/Makefile b/Makefile
index b002c43ff29810b74145234b23026b32c6764bd4..fe649041013e19c8933a26b430ee2a47c234aa8c 100644
--- a/Makefile
+++ b/Makefile
@@ -21,6 +21,15 @@ monthly:
 	npm run monthly -w packages/api
 
 
+db/migrate:
+	npm run db:migrate -w packages/api
+
+db/check-queries:
+ifndef CI
+	npm run db:watch -w packages/api
+else
+	npm run db:check -w packages/api
+endif 
 
 test: test/ui test/api test/common
 test/api: test/api-unit test/api-integration
@@ -81,16 +90,18 @@ lint: lint/ui lint/api lint/common
 
 install:
 ifdef CI
-	npm pkg delete scripts
-endif
+	HUSKY=0 npm ci --ignore-scripts
+else
 	npm ci
+endif
 
 
 install/prod:
 ifdef CI
-	npm pkg delete scripts
-endif
+	HUSKY=0 npm ci --omit=dev --ignore-scripts
+else
 	npm ci --omit=dev
+endif
 
 
 build: build/common build/api build/ui
diff --git a/packages/api/.eslintignore b/packages/api/.eslintignore
index 3df214cf39b644bf788e0bda0d284d7581594cec..fdedf1ac498a18c72fbf9e16516ccc3eddc8df24 100644
--- a/packages/api/.eslintignore
+++ b/packages/api/.eslintignore
@@ -6,3 +6,4 @@
 /files
 /node_modules
 /sources
+/**/*.queries.types.ts
\ No newline at end of file
diff --git a/packages/api/.prettierignore b/packages/api/.prettierignore
index 43abff40a55cc18825137da27316fa5894cd8ca9..934eb16dc7a9d214621ff40ac7b5502cdb643f92 100644
--- a/packages/api/.prettierignore
+++ b/packages/api/.prettierignore
@@ -8,4 +8,4 @@ node_modules
 sources
 CHANGELOG.md
 **/*.json
-**/*.queries.types.ts
\ No newline at end of file
+/**/*.queries.types.ts
\ No newline at end of file
diff --git a/packages/api/package.json b/packages/api/package.json
index 8b3bab51c4436934fbc1b83ecbe7874c68d7e6b7..e3ea0565561c1f9cc4b492d94e619c0b03ae5a41 100644
--- a/packages/api/package.json
+++ b/packages/api/package.json
@@ -17,7 +17,8 @@
     "db:recreate": "dropdb --host=localhost --username=postgres camino && createdb --host=localhost --username=postgres camino",
     "db:migrate": "node --loader ts-node/esm/transpile-only ./src/knex/migrate.ts",
     "db:add-migration": "NODE_OPTIONS='--loader ts-node/esm/transpile-only' knex migrate:make",
-    "db:watch": "npx --package=@pgtyped/cli pgtyped -w -c config.json",
+    "db:watch": "npx --package=@pgtyped/cli pgtyped -w -c pgtyped-config.json",
+    "db:check": "npx --package=@pgtyped/cli pgtyped -c pgtyped-config.ci.json",
     "dev": "node --watch --loader ts-node/esm/transpile-only --inspect ./src/index.ts",
     "daily-debug": "node  --inspect-brk=3000 --loader ts-node/esm/transpile-only ./src/scripts/daily.ts",
     "dev:backups-archive": "tar -zcvf backups/`date +%Y%m%d_%H%M%S`-camino.tar.gz backups/files/* backups/camino.sql",
diff --git a/packages/api/pgtyped-config.ci.json b/packages/api/pgtyped-config.ci.json
new file mode 100644
index 0000000000000000000000000000000000000000..212590fbd852a31a9716d9a96ac522df1d4398d9
--- /dev/null
+++ b/packages/api/pgtyped-config.ci.json
@@ -0,0 +1,18 @@
+{
+  "transforms": [
+    {
+      "mode": "ts",
+      "include": "**/*.queries.ts",
+      "emitTemplate": "{{dir}}/{{name}}.types.ts"
+    }
+  ],
+  "srcDir": "./src/",
+  "failOnError": true,
+  "camelCaseColumnNames": false,
+  "db": {
+    "host": "localhost",
+    "user": "postgres",
+    "dbName": "camino",
+    "password": "password"
+  }
+}
diff --git a/packages/api/config.json b/packages/api/pgtyped-config.json
similarity index 100%
rename from packages/api/config.json
rename to packages/api/pgtyped-config.json
diff --git a/packages/api/src/api/rest/statistiques/dgtm.queries.types.ts b/packages/api/src/api/rest/statistiques/dgtm.queries.types.ts
index ed043e5b43c59819dc46de88ff8d31c999f480ef..4715e1fc13a9d78dd356be9b0fbf1db45180aa87 100644
--- a/packages/api/src/api/rest/statistiques/dgtm.queries.types.ts
+++ b/packages/api/src/api/rest/statistiques/dgtm.queries.types.ts
@@ -2,17 +2,18 @@
 
 /** 'GetProductionOr' parameters type */
 export interface IGetProductionOrParams {
-  substance?: string | null | void
+  substance?: string | null | void;
 }
 
 /** 'GetProductionOr' return type */
 export interface IGetProductionOrResult {
-  annee: number | null
-  count: string | null
+  annee: number;
+  count: string | null;
 }
 
 /** 'GetProductionOr' query type */
 export interface IGetProductionOrQuery {
-  params: IGetProductionOrParams
-  result: IGetProductionOrResult
+  params: IGetProductionOrParams;
+  result: IGetProductionOrResult;
 }
+
diff --git a/packages/api/src/knex/config.ts b/packages/api/src/knex/config.ts
index 0d03ca586c4717de5d5aee717125761ddc679a5c..dc1d44ea291ba321757ac3fa46e644e6704591d3 100644
--- a/packages/api/src/knex/config.ts
+++ b/packages/api/src/knex/config.ts
@@ -16,7 +16,7 @@ export const knexConfig = {
   client: 'pg',
   connection,
   migrations: {
-    directory: [join(__dirname, './migrations-schema'), join(__dirname, './migrations-data')],
+    directory: [join(__dirname, './migrations')],
     stub: join(__dirname, './migration-stub.ts'),
     extension: 'ts',
     loadExtensions: ['.ts'],
diff --git a/packages/api/src/knex/migrate.ts b/packages/api/src/knex/migrate.ts
index 26735277c228c2d1faff0be7369edd1a896fb391..f0776d1d43eb60b8358ddb29ed59070659092d96 100644
--- a/packages/api/src/knex/migrate.ts
+++ b/packages/api/src/knex/migrate.ts
@@ -1,24 +1,24 @@
 import '../init.js'
 import { knex } from '../knex.js'
-import chalk from 'chalk'
 
 const run = async () => {
   try {
     console.info('migrate…')
+
     const [latestBatchNo, latestLog] = await knex.migrate.latest()
     if (latestLog.length === 0) {
-      console.info(chalk.cyan(`already up to date\n`))
+      console.info(`already up to date\n`)
+    } else {
+      console.info(`batch ${latestBatchNo} run: ${latestLog.length} migrations \n` + latestLog.join('\n') + '\n')
     }
 
-    console.info(chalk.green(`batch ${latestBatchNo} run: ${latestLog.length} migrations \n`) + chalk.cyan(latestLog.join('\n')) + '\n')
-
     console.info('migrations terminées')
     process.exit()
   } catch (e) {
     if (e instanceof Error) {
-      console.error(chalk.red(e.stack))
+      console.error(e.stack)
     } else {
-      console.error(chalk.red(e))
+      console.error(e)
     }
 
     process.exit(1)
diff --git a/packages/api/src/knex/migrations-data/20211103110922_etapes_statuts_complet_add.ts b/packages/api/src/knex/migrations-data/20211103110922_etapes_statuts_complet_add.ts
deleted file mode 100644
index b7523be35946dca822b44083bbda9f80277a12bc..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-data/20211103110922_etapes_statuts_complet_add.ts
+++ /dev/null
@@ -1,38 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  await knex('etapes_statuts').insert([
-    {
-      id: 'com',
-      nom: 'complet',
-      couleur: 'success',
-    },
-    {
-      id: 'inc',
-      nom: 'incomplet',
-      couleur: 'error',
-    },
-  ])
-
-  await knex('etapes_types__etapes_statuts').insert([
-    {
-      etape_type_id: 'mcp',
-      etape_statut_id: 'com',
-      ordre: 1,
-    },
-    {
-      etape_type_id: 'mcp',
-      etape_statut_id: 'inc',
-      ordre: 2,
-    },
-  ])
-
-  await knex('titres_etapes').where('type_id', 'mcp').where('statut_id', 'fav').update('statut_id', 'com')
-
-  await knex('titres_etapes').where('type_id', 'mcp').where('statut_id', 'def').update('statut_id', 'inc')
-
-  await knex('etapes_types__etapes_statuts').where('etape_type_id', 'mcp').where('etape_statut_id', 'fav').del()
-
-  return knex('etapes_types__etapes_statuts').where('etape_type_id', 'mcp').where('etape_statut_id', 'def').del()
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-data/20211103135837_titres_etapes_incertitudes_clean.ts b/packages/api/src/knex/migrations-data/20211103135837_titres_etapes_incertitudes_clean.ts
deleted file mode 100644
index bfdd556c6101d455f9cebc0e09db3d0d0207fffd..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-data/20211103135837_titres_etapes_incertitudes_clean.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-import { Knex } from 'knex'
-import TitresEtapes from '../../database/models/titres-etapes.js'
-
-export const up = async (knex: Knex) => {
-  const titresEtapes: any[] = await TitresEtapes.query().withGraphFetched('[titulaires, amodiataires, points, substances]')
-
-  for (const titreEtape of titresEtapes) {
-    let updated = false
-
-    // copier/coller du traitement effectué dans le model TitresEtapes
-    if (titreEtape.incertitudes) {
-      Object.keys(titreEtape.incertitudes).forEach(id => {
-        if (!titreEtape.incertitudes[id] || !(titreEtape[id] || titreEtape[id] === 0) || (Array.isArray(titreEtape[id]) && !titreEtape[id].length)) {
-          delete titreEtape.incertitudes[id]
-          updated = true
-        }
-      })
-
-      if (!Object.keys(titreEtape.incertitudes).length) {
-        titreEtape.incertitudes = null
-        updated = true
-      }
-      if (updated) {
-        await knex('titres_etapes').where('id', titreEtape.id).update('incertitudes', titreEtape.incertitudes)
-
-        console.info(`Incertitudes nettoyées ${titreEtape.slug}`)
-      }
-    }
-  }
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-data/20211116154026_demarches_statuts_travaux_finpolicemines_add.ts b/packages/api/src/knex/migrations-data/20211116154026_demarches_statuts_travaux_finpolicemines_add.ts
deleted file mode 100644
index 14bd75403a46d91811a5594067c3ddadb2bf41f4..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-data/20211116154026_demarches_statuts_travaux_finpolicemines_add.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  await knex('demarches_statuts').insert([
-    {
-      id: 'fpm',
-      nom: 'fin de la police des mines',
-      description: 'Fin de la police des mines',
-      couleur: 'success',
-      ordre: 11,
-    },
-  ])
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-data/20211123084623_metas_travaux_publi_recueil_acte_admin_add.ts b/packages/api/src/knex/migrations-data/20211123084623_metas_travaux_publi_recueil_acte_admin_add.ts
deleted file mode 100644
index 0a918c60bb422bc21a9b564148caa75c0a2c1cf9..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-data/20211123084623_metas_travaux_publi_recueil_acte_admin_add.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  const demarcheTypeId = 'dam' // déclaration d'arrêt définitif des travaux
-  const etapeTypeId = 'wpa' // publication au recueil des actes administratifs
-  const titresTypes = await knex.select().table('titres_types')
-
-  for (const t of titresTypes) {
-    await knex('titres_types__demarches_types__etapes_types').insert({
-      titreTypeId: t.id,
-      demarcheTypeId,
-      etapeTypeId,
-      ordre: 230,
-    })
-  }
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-data/20211201135203_etapes_travaux_arrete_ouverture_travaux_miniers_add.ts b/packages/api/src/knex/migrations-data/20211201135203_etapes_travaux_arrete_ouverture_travaux_miniers_add.ts
deleted file mode 100644
index 38795659280144eddbc39fe65a16d17a3a8c15d1..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-data/20211201135203_etapes_travaux_arrete_ouverture_travaux_miniers_add.ts
+++ /dev/null
@@ -1,35 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  // Ajoute l'étape "Arrêté d'ouverture de travaux miniers"
-  // à la démarche "Autorisation d'ouverture de travaux miniers".
-  const titresTypes = await knex.select().table('titres_types')
-  const etapeTypeId = 'wao'
-  const demarcheTypeId = 'aom'
-
-  await knex('etapes_types').insert({
-    id: etapeTypeId,
-    nom: "arrêté d'ouverture des travaux miniers",
-    description: "Arrêté d'ouverture des travaux miniers",
-    ordre: 1028,
-    fondamentale: false,
-  })
-
-  await knex('etapes_types__etapes_statuts').insert([
-    {
-      etapeTypeId,
-      etapeStatutId: 'fai',
-      ordre: 0,
-    },
-  ])
-
-  for (const t of titresTypes) {
-    await knex('titres_types__demarches_types__etapes_types').insert({
-      titreTypeId: t.id,
-      demarcheTypeId,
-      etapeTypeId,
-      ordre: 260,
-    })
-  }
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-data/20211215100715_utilisateurs-camino-create.ts b/packages/api/src/knex/migrations-data/20211215100715_utilisateurs-camino-create.ts
deleted file mode 100644
index 8b284beafd893ea11f9fc20b9dd7cc01db715579..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-data/20211215100715_utilisateurs-camino-create.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import { Knex } from 'knex'
-import { idGenerate } from '../../database/models/_format/id-create.js'
-import { userSuper } from '../../database/user-super.js'
-
-export const up = async (knex: Knex) => {
-  await knex('utilisateurs').insert({
-    ...userSuper,
-    motDePasse: idGenerate(),
-  })
-}
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-data/20220104133620_etapes_travaux_porter_connaissance_add.ts b/packages/api/src/knex/migrations-data/20220104133620_etapes_travaux_porter_connaissance_add.ts
deleted file mode 100644
index e7a0420472526d62457f172dff6540340130ec38..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-data/20220104133620_etapes_travaux_porter_connaissance_add.ts
+++ /dev/null
@@ -1,37 +0,0 @@
-import { Knex } from 'knex'
-import { TitreEtapesTravauxTypes } from '../../types.js'
-
-export const up = async (knex: Knex) => {
-  // Ajoute l'étape "Porter-à-connaissance"
-  // à la démarche "Déclaration d’arrêt définitif de travaux miniers DADT".
-  const titresTypes = await knex.select().table('titres_types')
-  const etapeTypeId = TitreEtapesTravauxTypes.PorterAConnaissance
-  const demarcheTypeId = 'dam'
-
-  await knex('etapes_types').insert({
-    id: etapeTypeId,
-    nom: 'porter-à-connaissance',
-    description: 'Porter-à-connaissance',
-    ordre: 1029,
-    fondamentale: false,
-  })
-
-  await knex('etapes_types__etapes_statuts').insert([
-    {
-      etapeTypeId,
-      etapeStatutId: 'fai',
-      ordre: 0,
-    },
-  ])
-
-  for (const t of titresTypes) {
-    await knex('titres_types__demarches_types__etapes_types').insert({
-      titreTypeId: t.id,
-      demarcheTypeId,
-      etapeTypeId,
-      ordre: 240,
-    })
-  }
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-data/20220119122515_document_type_jpa_migrate.ts b/packages/api/src/knex/migrations-data/20220119122515_document_type_jpa_migrate.ts
deleted file mode 100644
index 7d49757e188cc3aa44203448dd1d3c187a341cae..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-data/20220119122515_document_type_jpa_migrate.ts
+++ /dev/null
@@ -1,41 +0,0 @@
-import { Knex } from 'knex'
-import TitresEtapesJustificatifs from '../../database/models/titres-etapes-justificatifs.js'
-import Document from '../../database/models/documents.js'
-import fileRename from '../../tools/file-rename.js'
-import { documentFilePathFind } from '../../tools/documents/document-path-find.js'
-
-export const up = async (knex: Knex) => {
-  await knex('titres_types__demarches_types__etapes_types__justificatifs_t').where('document_type_id', 'jpa').delete()
-
-  await knex('titres_types__demarches_types__etapes_types__documents_types').insert({
-    titreTypeId: 'arm',
-    demarcheTypeId: 'oct',
-    etapeTypeId: 'mfr',
-    documentTypeId: 'jpa',
-  })
-
-  const titreEtapeJustificatifs: any[] = await TitresEtapesJustificatifs.query().leftJoinRelated('document').where('document.typeId', 'jpa').withGraphFetched('[document, etape]')
-
-  for (const titreEtapeJustificatif of titreEtapeJustificatifs) {
-    await TitresEtapesJustificatifs.query().delete().where('titreEtapeId', titreEtapeJustificatif.titreEtapeId).where('documentId', titreEtapeJustificatif.documentId)
-
-    await Document.query().patchAndFetchById(titreEtapeJustificatif.documentId, { entrepriseId: null, titreEtapeId: titreEtapeJustificatif.titreEtapeId })
-
-    const pathFrom = await documentFilePathFind(titreEtapeJustificatif.document)
-    const pathTo = await documentFilePathFind(
-      {
-        ...titreEtapeJustificatif.document,
-        entrepriseId: undefined,
-        titreEtapeId: titreEtapeJustificatif.titreEtapeId,
-      },
-      true
-    )
-    try {
-      await fileRename(pathFrom, pathTo)
-    } catch (e) {
-      // console.log(e)
-    }
-  }
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-data/20220127132757_etapes_types_clean.ts b/packages/api/src/knex/migrations-data/20220127132757_etapes_types_clean.ts
deleted file mode 100644
index d0003063368bc9f78b4d1add0ee6b04ca7f8a6aa..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-data/20220127132757_etapes_types_clean.ts
+++ /dev/null
@@ -1,41 +0,0 @@
-import { Knex } from 'knex'
-import { titresEtapesGet } from '../../database/queries/titres-etapes.js'
-import { userSuper } from '../../database/user-super.js'
-import TitresEtapes from '../../database/models/titres-etapes.js'
-import { deleteJournalCreate } from '../../database/queries/journaux.js'
-
-export const up = async (knex: Knex) => {
-  // Supprime l’étape DSL « Demande de l’accord du propriétaire du sol »
-  await knex('titres_types__demarches_types__etapes_types').where('etape_type_id', 'dsl').delete()
-
-  const etapesDsl: any[] = await titresEtapesGet({ etapesTypesIds: ['dsl'] }, { fields: { demarche: {} } }, userSuper)
-  for (const etapeDsl of etapesDsl) {
-    await deleteJournalCreate(etapeDsl.id, TitresEtapes, userSuper.id, etapeDsl.demarche.titreId)
-    await TitresEtapes.query().delete().where('id', etapeDsl.id)
-  }
-
-  await knex('administrations__titres_types__etapes_types').where('etape_type_id', 'dsl').delete()
-
-  await knex('etapes_types__etapes_statuts').where('etape_type_id', 'dsl').delete()
-
-  await knex('etapes_types').where('id', 'dsl').delete()
-
-  // supprime l’eof « Expertise de l’ONF » des AXM et son cycle d’informations
-  await knex('titres_types__demarches_types__etapes_types').whereIn('etape_type_id', ['eof', 'rio', 'mio']).where('demarche_type_id', 'oct').where('titre_type_id', 'axm').delete()
-
-  // Supprime l’étape QAE « Demande d’examen au cas par cas »
-  await knex('titres_types__demarches_types__etapes_types').where('etape_type_id', 'qae').delete()
-
-  const etapesQae: any[] = await titresEtapesGet({ etapesTypesIds: ['qae'] }, { fields: { demarche: {} } }, userSuper)
-  for (const etapeQae of etapesQae) {
-    await deleteJournalCreate(etapeQae.id, TitresEtapes, userSuper.id, etapeQae.demarche.titreId)
-    await TitresEtapes.query().delete().where('id', etapeQae.id)
-  }
-
-  await knex('administrations__titres_types__etapes_types').where('etape_type_id', 'qae').delete()
-
-  await knex('etapes_types__etapes_statuts').where('etape_type_id', 'qae').delete()
-
-  await knex('etapes_types').where('id', 'qae').delete()
-}
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-data/20220404145904_titres_activites_wrp_masse_delete.ts b/packages/api/src/knex/migrations-data/20220404145904_titres_activites_wrp_masse_delete.ts
deleted file mode 100644
index a74ea77be969bb1653f20f84801b1bdf9bfd5d90..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-data/20220404145904_titres_activites_wrp_masse_delete.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  const activites: any[] = await knex('titres_activites').where('typeId', 'wrp')
-
-  for (let i = 0; i < activites.length; i++) {
-    const activite = activites[i]
-
-    let updated = false
-
-    if (activite.contenu?.renseignementsProduction) {
-      delete activite.contenu?.renseignementsProduction?.masseGranulatsExtrait
-      updated = true
-    }
-
-    if (activite.sections) {
-      const section = activite.sections.find((s: { id: string }) => s.id === 'renseignementsProduction')
-
-      if (section) {
-        section.elements = section.elements.filter((element: { id: string }) => element.id !== 'masseGranulatsExtrait')
-
-        updated = true
-      }
-    }
-
-    if (updated) {
-      await knex('titres_activites').where('id', activite.id).update(activite)
-    }
-  }
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-data/20220427064929_titres_etapes_asl_heritage_clean.ts b/packages/api/src/knex/migrations-data/20220427064929_titres_etapes_asl_heritage_clean.ts
deleted file mode 100644
index 9ae53f3f87728177013888221bcc5bb026f6eb8e..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-data/20220427064929_titres_etapes_asl_heritage_clean.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  const etapeIds = (await knex('titres_etapes').where('type_id', 'asl').select('id')).map(({ id }) => id)
-
-  await knex('titres_substances').whereIn('titre_etape_id', etapeIds).delete()
-  await knex('titres_titulaires').whereIn('titre_etape_id', etapeIds).delete()
-  await knex('titres_amodiataires').whereIn('titre_etape_id', etapeIds).delete()
-  await knex('titres_points').whereIn('titre_etape_id', etapeIds).delete()
-
-  return knex('titres_etapes').where('type_id', 'asl').update({ heritage_props: null })
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-data/20220519123402_supprime-mid-rid.ts b/packages/api/src/knex/migrations-data/20220519123402_supprime-mid-rid.ts
deleted file mode 100644
index dc23ceba8d36404cfcdb36a3e4ae242a0f90bfc6..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-data/20220519123402_supprime-mid-rid.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  const etapeTypeIds = ['mid', 'rid']
-
-  await knex('administrations__titresTypes__etapesTypes').whereIn('etapeTypeId', etapeTypeIds).delete()
-  await knex('etapesTypes__etapesStatuts').whereIn('etapeTypeId', etapeTypeIds).delete()
-  await knex('titresTypes__demarchesTypes__etapesTypes').whereIn('etapeTypeId', etapeTypeIds).delete()
-  await knex('etapesTypes').whereIn('id', etapeTypeIds).delete()
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-data/20220609145836_fix-substances-ordre.ts b/packages/api/src/knex/migrations-data/20220609145836_fix-substances-ordre.ts
deleted file mode 100644
index 05d3a8f2f533948dd21b99dc99011aca566bef7b..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-data/20220609145836_fix-substances-ordre.ts
+++ /dev/null
@@ -1,38 +0,0 @@
-import { Knex } from 'knex'
-const mostImportantSubstances = ['auru', 'nacl']
-const leastImportantSubstances = ['tmas', 'suco', 'scor', 'oooo', 'rxxx', 'trxx']
-
-export const up = async (knex: Knex) => {
-  const titresEtapesSubstances = await knex('titres_substances').select('titre_etape_id').count('titre_etape_id').whereNull('ordre').groupBy('titre_etape_id')
-  for (let i = 0; i < titresEtapesSubstances.length; i++) {
-    const titreEtapeSubstances = titresEtapesSubstances[i]
-    if (titreEtapeSubstances.count !== '1') {
-      const entries = await knex('titres_substances').where('titre_etape_id', titreEtapeSubstances.titreEtapeId)
-      const sorted = entries.sort((entry1, entry2) => {
-        if (mostImportantSubstances.includes(entry1.substanceId)) {
-          return -1
-        }
-        if (mostImportantSubstances.includes(entry2.substanceId)) {
-          return 1
-        }
-
-        if (leastImportantSubstances.includes(entry1.substanceId)) {
-          return 1
-        }
-
-        if (leastImportantSubstances.includes(entry2.substanceId)) {
-          return -1
-        }
-
-        return 0
-      })
-
-      for (let j = 0; j < sorted.length; j++) {
-        const titreEtapeSubstance = sorted[j]
-        await knex('titres_substances').where('titre_etape_id', titreEtapeSubstance.titreEtapeId).andWhere('substanceId', titreEtapeSubstance.substanceId).update('ordre', j)
-      }
-    }
-  }
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-data/20220615122602_bureau-etudes-create.ts b/packages/api/src/knex/migrations-data/20220615122602_bureau-etudes-create.ts
deleted file mode 100644
index ad68a0ba0b6db0e274ba6f107da4b1fdbcf5c208..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-data/20220615122602_bureau-etudes-create.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import { Knex } from 'knex'
-export const up = (knex: Knex) => knex('utilisateurs').whereIn('id', ['c7142a', '38cbc5', '24414c', '40bf91', '95177f']).update({ role: 'bureau d’études' })
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-data/20220704122231_remove-plg.ts b/packages/api/src/knex/migrations-data/20220704122231_remove-plg.ts
deleted file mode 100644
index d1b3e723d0dde995e9b1696e12a293fc69f42fa7..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-data/20220704122231_remove-plg.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  await knex('etapesTypes__documentsTypes').where('documentTypeId', 'plg').delete()
-  await knex('documentsTypes').where('id', 'plg').delete()
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-data/20220706130330_demarches-types-fusion-concession.ts b/packages/api/src/knex/migrations-data/20220706130330_demarches-types-fusion-concession.ts
deleted file mode 100644
index 46afef1b059d6e14ff87542403a5bdbcb91121d0..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-data/20220706130330_demarches-types-fusion-concession.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  await knex('titres_types__demarches_types').insert({
-    titreTypeId: 'cxm',
-    demarcheTypeId: 'fus',
-  })
-
-  await knex('titres_types__demarches_types__etapes_types').insert({
-    titreTypeId: 'cxm',
-    demarcheTypeId: 'fus',
-    etapeTypeId: 'dex',
-    ordre: 100,
-  })
-
-  await knex('titres_types__demarches_types__etapes_types').insert({
-    titreTypeId: 'cxm',
-    demarcheTypeId: 'fus',
-    etapeTypeId: 'dpu',
-    ordre: 200,
-  })
-}
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-data/20220726122406_activites-fiscales-unites-fix.ts b/packages/api/src/knex/migrations-data/20220726122406_activites-fiscales-unites-fix.ts
deleted file mode 100644
index dcb02f69d7f0266f9f5207ea51fc87537314976d..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-data/20220726122406_activites-fiscales-unites-fix.ts
+++ /dev/null
@@ -1,46 +0,0 @@
-import { UniteId, Unites } from 'camino-common/src/static/unites.js'
-import { Knex } from 'knex'
-import { SUBSTANCES_FISCALES_IDS, SubstancesFiscale, isSubstanceFiscale } from 'camino-common/src/static/substancesFiscales.js'
-export const up = async (knex: Knex) => {
-  const activites: {
-    id: string
-    sections: {
-      id: string
-      elements: {
-        id: string
-        uniteId: UniteId
-        referenceUniteRatio: number
-        description: string
-      }[]
-    }[]
-  }[] = await knex('titres_activites')
-
-  for (let i = 0; i < activites.length; i++) {
-    const activite = activites[i]
-
-    let updated = false
-
-    const substancesNeedFix = [SUBSTANCES_FISCALES_IDS['pyrite de fer'], SUBSTANCES_FISCALES_IDS['minerais de fer'], SUBSTANCES_FISCALES_IDS['schistes carbobitumineux et schistes bitumineux']]
-
-    const sectionSubstancesFiscales = activite.sections?.find(section => section.id === 'substancesFiscales')
-
-    if (sectionSubstancesFiscales) {
-      for (const element of sectionSubstancesFiscales.elements) {
-        if (substancesNeedFix.includes(element.id) && isSubstanceFiscale(element.id)) {
-          const sf = SubstancesFiscale[element.id]
-          element.uniteId = sf.uniteId
-
-          const unite = Unites[element.uniteId]
-          element.referenceUniteRatio = unite.referenceUniteRatio ?? 1
-          element.description = `<b>${unite.symbole} (${unite.nom})</b> ${sf.description}`
-          updated = true
-        }
-      }
-    }
-    if (updated) {
-      await knex('titres_activites').where('id', activite.id).update(activite)
-    }
-  }
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-data/20220816140444_substances-ordre-required.ts b/packages/api/src/knex/migrations-data/20220816140444_substances-ordre-required.ts
deleted file mode 100644
index 680ca8effbfa9cf0a12cd71a8507258e9bebea39..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-data/20220816140444_substances-ordre-required.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  await knex('titres_substances').whereNull('ordre').update({ ordre: 0 })
-
-  const titresSubstances: any[] = await knex('titres_substances')
-
-  const groupByTitres: Record<string, any> = titresSubstances.reduce((acc, ts) => {
-    if (!acc[ts.titreEtapeId]) {
-      acc[ts.titreEtapeId] = []
-    }
-    acc[ts.titreEtapeId].push(ts)
-
-    return acc
-  }, {})
-
-  for (const titreSubstances of Object.values(groupByTitres)) {
-    titreSubstances.sort((a: { ordre: number }, b: { ordre: number }) => a.ordre - b.ordre)
-    for (let index = 0; index < titreSubstances.length; index++) {
-      const ts = titreSubstances[index]
-      await knex('titres_substances').where('titreEtapeId', ts.titreEtapeId).where('substanceId', ts.substanceId).update('ordre', index)
-    }
-  }
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-data/20220830145751_document-notice-impact-fix.ts b/packages/api/src/knex/migrations-data/20220830145751_document-notice-impact-fix.ts
deleted file mode 100644
index 855a8a199da8f18898e2fd872f0198f87e76f484..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-data/20220830145751_document-notice-impact-fix.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  await knex('documentsTypes').insert({ id: 'nip', nom: 'Notice d’impact' })
-  await knex('titresTypes__demarchesTypes__etapesTypes__documentsTypes').insert({
-    titreTypeId: 'axm',
-    demarcheTypeId: 'oct',
-    etapeTypeId: 'mfr',
-    documentTypeId: 'nip',
-    optionnel: true,
-  })
-
-  const noticesIncidences = await knex('documents').where('typeId', 'noi')
-  for (const noticeIncidence of noticesIncidences) {
-    const etape = await knex('titresEtapes').where('id', noticeIncidence.titreEtapeId).first()
-    if (etape && etape.slug.startsWith('m-ax-')) {
-      await knex('documents')
-        .where('id', noticeIncidence.id)
-        .update({ ...noticeIncidence, typeId: 'nip' })
-    }
-  }
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-data/20220905150740_change-la-visibilite-des-titres-stockage-souterrain.ts b/packages/api/src/knex/migrations-data/20220905150740_change-la-visibilite-des-titres-stockage-souterrain.ts
deleted file mode 100644
index c35fd27b7015b8d7e327880b60759aca47cf3733..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-data/20220905150740_change-la-visibilite-des-titres-stockage-souterrain.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  await knex('titresTypes__titresStatuts').whereLike('titreTypeId', '%s').whereIn('titreStatutId', ['val', 'ech', 'dmi', 'mod']).update({
-    publicLecture: true,
-  })
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-data/20221019080302_ajout-tde-ppu-ppc-afp-ars-aac.ts b/packages/api/src/knex/migrations-data/20221019080302_ajout-tde-ppu-ppc-afp-ars-aac.ts
deleted file mode 100644
index 63d378cf66a42a462090b2360b87421fa6c11682..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-data/20221019080302_ajout-tde-ppu-ppc-afp-ars-aac.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  await knex.raw(`INSERT INTO titres_types__demarches_types__etapes_types(titre_type_id, ordre, demarche_type_id, etape_type_id) VALUES 
-  ('prm', 261, 'pr2','ppu'),
-  ('prm', 261, 'pr2','ppc'),
-  ('prm', 261, 'pr1','ppu'),
-  ('prm', 262, 'pr1','ppc'),
-  ('prw', 201, 'pr1','ppu'),
-  ('prw', 202, 'pr1','ppc'),
-  ('prw', 201, 'pr2','ppu'),
-  ('prw', 202, 'pr2','ppc'),
-  ('prm', 261, 'oct','afp'),
-  ('prm', 262, 'oct','ars'),
-  ('prm', 263, 'oct','aac');
-  `)
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-data/20221107143442_delete-entreprises-titres-types.ts b/packages/api/src/knex/migrations-data/20221107143442_delete-entreprises-titres-types.ts
deleted file mode 100644
index 5e20e9882b1e0debc7fe41055dba0800a014a9bd..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-data/20221107143442_delete-entreprises-titres-types.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  await knex.schema.dropTable('entreprises__titresTypes')
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-data/20221214091154_delete-etape-type-duy.ts b/packages/api/src/knex/migrations-data/20221214091154_delete-etape-type-duy.ts
deleted file mode 100644
index 17da3a40a1fa2da23bfae52cd39fef2a1b8e4b3b..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-data/20221214091154_delete-etape-type-duy.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { Knex } from 'knex'
-
-export const up = async (knex: Knex) => {
-  await knex.raw("delete from etapes_types where id = 'duy'")
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-data/20230116093949_merge-carte-plan.ts b/packages/api/src/knex/migrations-data/20230116093949_merge-carte-plan.ts
deleted file mode 100644
index 9acd051802fe94e588f17528e61f853677653e99..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-data/20230116093949_merge-carte-plan.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { Knex } from 'knex'
-
-export const up = async (knex: Knex) => {
-  await knex.raw("update documents set type_id='car' where type_id='pla'")
-  await knex.raw("delete from documents_types where id = 'pla'")
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-data/20230131155632_prm-sections-mod-engagement.ts b/packages/api/src/knex/migrations-data/20230131155632_prm-sections-mod-engagement.ts
deleted file mode 100644
index 6db71b920932d1c3f9dc846ed14f463073a32f40..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-data/20230131155632_prm-sections-mod-engagement.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { Knex } from 'knex'
-
-export const up = async (knex: Knex) => {
-  await knex.raw(
-    "update titres_types__demarches_types__etapes_types set sections=(select sections from titres_types__demarches_types__etapes_types where titre_type_id='prm' and demarche_type_id='oct' and etape_type_id='mfr') where titre_type_id='prm' and demarche_type_id='oct' and etape_type_id='mod'"
-  )
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-data/20230207101630_domaine-indetermine-delete.ts b/packages/api/src/knex/migrations-data/20230207101630_domaine-indetermine-delete.ts
deleted file mode 100644
index 54240b321035a750686ac200560a50ee2dea0184..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-data/20230207101630_domaine-indetermine-delete.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { Knex } from 'knex'
-
-export const up = async (knex: Knex) => {
-  await knex.raw("delete from titres_types__demarches_types__etapes_types where titre_type_id like '%i'")
-  await knex.raw("delete from titres_types__demarches_types where titre_type_id like '%i'")
-  await knex.raw("delete from titres_types where domaine_id = 'i'")
-  await knex.raw("delete from domaines where id = 'i'")
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20180521000000_globales.ts b/packages/api/src/knex/migrations-schema/20180521000000_globales.ts
deleted file mode 100644
index c8dc2516e09c45a3da3080549590c678bf17b0c8..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20180521000000_globales.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { Knex } from 'knex'
-
-export const up = (knex: Knex) =>
-  knex.schema.createTable('globales', table => {
-    table.string('id').primary()
-    table.boolean('valeur').notNullable()
-  })
-
-export const down = (knex: Knex) => knex.schema.dropTable('globales')
diff --git a/packages/api/src/knex/migrations-schema/20180521000001_domaines_types_statuts.ts b/packages/api/src/knex/migrations-schema/20180521000001_domaines_types_statuts.ts
deleted file mode 100644
index 579a1fc00e8844398653a8e52a43206c132194bb..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20180521000001_domaines_types_statuts.ts
+++ /dev/null
@@ -1,38 +0,0 @@
-import { Knex } from 'knex'
-export const up = (knex: Knex) =>
-  knex.schema
-    .createTable('domaines', table => {
-      table.string('id', 1).primary()
-      table.string('nom').notNullable()
-      table.text('description')
-      table.integer('ordre').notNullable()
-    })
-    .createTable('titresTypesTypes', table => {
-      table.string('id', 2).primary()
-      table.string('nom').notNullable()
-      table.text('description')
-      table.integer('ordre').notNullable()
-    })
-    .createTable('titresTypes', table => {
-      table.string('id', 3).primary().notNullable()
-      table.string('domaineId', 1).index().references('domaines.id').notNullable()
-      table.string('typeId', 3).index().references('titresTypesTypes.id').notNullable()
-      table.specificType('contenuIds', 'jsonb[]')
-      table.boolean('archive')
-      table.unique(['domaineId', 'typeId'])
-    })
-    .createTable('titres_statuts', table => {
-      table.string('id', 3).primary()
-      table.string('nom', 32).notNullable()
-      table.text('description')
-      table.string('couleur', 16).notNullable()
-      table.integer('ordre')
-    })
-    .createTable('titresTypes__titresStatuts', table => {
-      table.string('titreTypeId').index().references('titresTypes.id').notNullable()
-      table.string('titreStatutId').index().references('titresStatuts.id').notNullable()
-      table.boolean('publicLecture')
-      table.primary(['titreTypeId', 'titreStatutId'])
-    })
-
-export const down = (knex: Knex) => knex.schema.dropTable('titresTypesTypes').dropTable('domaines').dropTable('titresTypes__titresStatuts').dropTable('titresTypes').dropTable('titresStatuts')
diff --git a/packages/api/src/knex/migrations-schema/20180521000002_demarches_etapes.ts b/packages/api/src/knex/migrations-schema/20180521000002_demarches_etapes.ts
deleted file mode 100644
index a95006ca7818c5e04d2e59e829058ca70140b887..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20180521000002_demarches_etapes.ts
+++ /dev/null
@@ -1,127 +0,0 @@
-import { Knex } from 'knex'
-export const up = (knex: Knex) => {
-  return knex.schema
-    .createTable('demarchesTypes', table => {
-      table.string('id', 3).primary()
-      table.string('nom').notNullable()
-      table.text('description')
-      table.integer('ordre')
-      table.boolean('duree')
-      table.boolean('points')
-      table.boolean('substances')
-      table.boolean('titulaires')
-      table.boolean('renouvelable')
-      table.boolean('exception')
-      table.boolean('auto')
-    })
-    .createTable('titresTypes__demarchesTypes', table => {
-      table.string('titreTypeId', 3).index().references('titresTypes.id').notNullable()
-      table.string('demarcheTypeId', 3).index().references('demarchesTypes.id').notNullable()
-      table.integer('dureeMax')
-      table.boolean('acceptationImplicite')
-      table.string('delaiImplicite')
-      table.string('delaiRecours')
-      table.string('legalRef')
-      table.string('legalLien')
-      table.string('dateDebut', 10)
-      table.string('dateFin', 10)
-      table.primary(['titreTypeId', 'demarcheTypeId'])
-    })
-    .createTable('demarchesStatuts', table => {
-      table.string('id', 3).primary()
-      table.string('nom', 32).notNullable()
-      table.text('description')
-      table.string('couleur', 16).notNullable()
-      table.integer('ordre').notNullable()
-    })
-    .createTable('phasesStatuts', table => {
-      table.string('id', 3).primary()
-      table.string('nom', 32).notNullable()
-      table.string('couleur', 16).notNullable()
-    })
-    .createTable('etapesTypes', table => {
-      table.string('id', 3).primary()
-      table.string('parentId', 3).references('etapesTypes.id')
-      table.string('nom', 128)
-      table.text('description')
-      table.integer('ordre').notNullable()
-      table.boolean('fondamentale')
-      table.boolean('unique')
-      table.boolean('acceptationAuto')
-      table.string('legalRef')
-      table.string('legalLien')
-      table.string('dateDebut', 10)
-      table.string('dateFin', 10)
-      table.specificType('sections', 'jsonb[]')
-      table.boolean('publicLecture')
-      table.boolean('entreprisesLecture')
-    })
-    .createTable('titresTypes__demarchesTypes__etapesTypes', table => {
-      table.string('titreTypeId', 3).index().references('titresTypes.id').notNullable()
-      table.integer('ordre')
-      table.string('demarcheTypeId', 7).index().references('demarchesTypes.id').notNullable()
-      table.string('etapeTypeId', 3).index().references('etapesTypes.id').notNullable()
-      table.specificType('sections', 'jsonb[]')
-      table.primary(['titreTypeId', 'demarcheTypeId', 'etapeTypeId'])
-    })
-    .createTable('etapesStatuts', table => {
-      table.string('id', 3).primary()
-      table.string('nom', 32).notNullable()
-      table.text('description')
-      table.string('couleur', 16).notNullable()
-    })
-    .createTable('etapesTypes__etapesStatuts', table => {
-      table.string('etapeTypeId', 3).index().references('etapesTypes.id').notNullable()
-      table.string('etapeStatutId', 3).index().references('etapesStatuts.id').notNullable()
-      table.integer('ordre')
-      table.primary(['etapeTypeId', 'etapeStatutId'])
-    })
-    .createTable('documentsTypes', table => {
-      table.string('id', 3).primary()
-      table.string('nom').notNullable()
-      table.text('description')
-    })
-    .createTable('etapesTypes__documentsTypes', table => {
-      table.string('etapeTypeId', 3).index().references('etapesTypes.id').notNullable().onDelete('CASCADE')
-      table.string('documentTypeId', 3).index().references('documentsTypes.id').notNullable()
-      table.boolean('optionnel')
-      table.text('description')
-      table.primary(['etapeTypeId', 'documentTypeId'])
-    })
-    .createTable('titresTypes__demarchesTypes__etapesTypes__documentsTypes', table => {
-      table.string('titreTypeId', 3).index().notNullable()
-      table.string('demarcheTypeId', 7).index().notNullable()
-      table.string('etapeTypeId', 3).index().notNullable()
-      table.string('documentTypeId', 3).index().references('documentsTypes.id').notNullable()
-      table.boolean('optionnel')
-      table.text('description')
-      table.primary(['titreTypeId', 'demarcheTypeId', 'etapeTypeId', 'documentTypeId'])
-      table.foreign(['titreTypeId', 'demarcheTypeId', 'etapeTypeId']).references(['titreTypeId', 'demarcheTypeId', 'etapeTypeId']).inTable('titresTypes__demarchesTypes__etapesTypes')
-    })
-    .createTable('titresTypes__demarchesTypes__etapesTypes__justificatifsT', table => {
-      table.string('titreTypeId', 3).index().notNullable()
-      table.string('demarcheTypeId', 7).index().notNullable()
-      table.string('etapeTypeId', 3).index().notNullable()
-      table.string('documentTypeId', 3).index().references('documentsTypes.id').notNullable()
-      table.boolean('optionnel')
-      table.text('description')
-      table.primary(['titreTypeId', 'demarcheTypeId', 'etapeTypeId', 'documentTypeId'])
-      table.foreign(['titreTypeId', 'demarcheTypeId', 'etapeTypeId']).references(['titreTypeId', 'demarcheTypeId', 'etapeTypeId']).inTable('titresTypes__demarchesTypes__etapesTypes')
-    })
-}
-
-export const down = (knex: Knex) => {
-  return knex.schema
-    .dropTable('titresTypes__demarchesTypes__etapesTypes__justificatifsT')
-    .dropTable('titresTypes__demarchesTypes__etapesTypes__documentsTypes')
-    .dropTable('etapesTypes__documentsTypes')
-    .dropTable('etapesTypes__etapesStatuts')
-    .dropTable('etapesStatuts')
-    .dropTable('titresTypes__demarchesTypes__etapesTypes')
-    .dropTable('etapesTypes')
-    .dropTable('demarchesStatuts')
-    .dropTable('titresTypes__demarchesTypes')
-    .dropTable('demarchesTypes')
-    .dropTable('phasesStatuts')
-    .dropTable('documentsTypes')
-}
diff --git a/packages/api/src/knex/migrations-schema/20180521000003_unites.ts b/packages/api/src/knex/migrations-schema/20180521000003_unites.ts
deleted file mode 100644
index d387b990e240bad471b0f32650796898e861c34b..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20180521000003_unites.ts
+++ /dev/null
@@ -1,29 +0,0 @@
-import { Knex } from 'knex'
-export const up = (knex: Knex) =>
-  knex.schema
-    .createTable('devises', table => {
-      table.string('id', 3).primary()
-      table.string('nom').notNullable()
-      table.integer('ordre')
-    })
-    .createTable('unites', table => {
-      table.string('id', 3).primary()
-      table.string('nom').notNullable()
-      table.string('symbole').notNullable()
-      table.string('referenceUniteId', 3).references('id')
-      table.float('referenceUniteRatio')
-    })
-    .createTable('geoSystemes', table => {
-      table.string('id', 5).primary()
-      table.string('nom').notNullable()
-      table.integer('ordre')
-      table.string('uniteId', 3).index().references('unites.id').notNullable()
-      table.string('zone')
-      table.string('definitionProj4')
-    })
-    .createTable('referencesTypes', table => {
-      table.string('id', 3).primary()
-      table.string('nom').notNullable()
-    })
-
-export const down = (knex: Knex) => knex.schema.dropTable('devises').dropTable('geoSystemes').dropTable('unites').dropTable('referencesTypes')
diff --git a/packages/api/src/knex/migrations-schema/20180521000004_substances.ts b/packages/api/src/knex/migrations-schema/20180521000004_substances.ts
deleted file mode 100644
index ac620282a31cab0fe8900f1ae47572b75a77c1b1..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20180521000004_substances.ts
+++ /dev/null
@@ -1,43 +0,0 @@
-import { Knex } from 'knex'
-export const up = (knex: Knex) => {
-  return knex.schema
-    .createTable('substancesLegalesCodes', table => {
-      table.string('id').primary()
-      table.string('nom')
-      table.string('code').notNullable()
-      table.text('description')
-      table.string('lien').notNullable()
-      table.integer('ordre').notNullable()
-    })
-    .createTable('substancesLegales', table => {
-      table.string('id').primary()
-      table.string('nom').notNullable()
-      table.string('domaineId', 1).notNullable().index().references('domaines.id')
-      table.text('description')
-      table.string('substanceLegaleCodeId').index().references('substancesLegalesCodes.id').notNullable()
-    })
-    .createTable('substances', table => {
-      table.string('id', 4).primary()
-      table.string('nom').notNullable()
-      table.string('symbole')
-      table.integer('gerep')
-      table.string('description', 2048)
-    })
-    .createTable('substances__substancesLegales', table => {
-      table.string('substanceId').index().references('substances.id').notNullable().onDelete('CASCADE')
-      table.string('substanceLegaleId').index().references('substancesLegales.id').notNullable()
-      table.primary(['substanceId', 'substanceLegaleId'])
-    })
-    .createTable('substancesFiscales', table => {
-      table.string('id', 4).primary()
-      table.string('substanceLegaleId').index().references('substancesLegales.id').notNullable()
-      table.string('uniteId').index().references('unites.id').notNullable()
-      table.string('redevanceUniteId').index().references('unites.id')
-      table.string('nom').notNullable()
-      table.string('description', 2048)
-    })
-}
-
-export const down = (knex: Knex) => {
-  return knex.schema.dropTable('substances__substancesLegales').dropTable('substances').dropTable('substancesLegales').dropTable('substancesLegalesCodes')
-}
diff --git a/packages/api/src/knex/migrations-schema/20180521000005_territoires.ts b/packages/api/src/knex/migrations-schema/20180521000005_territoires.ts
deleted file mode 100644
index e3a587989bb6b69d22ac864a94e64c49f742e686..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20180521000005_territoires.ts
+++ /dev/null
@@ -1,34 +0,0 @@
-import { Knex } from 'knex'
-export const up = (knex: Knex) => {
-  return knex.schema
-    .createTable('pays', table => {
-      table.string('id', 3).primary()
-      table.string('nom').notNullable()
-      table.string('timezone')
-    })
-    .createTable('regions', table => {
-      table.string('id', 2).primary()
-      table.string('nom')
-      table.string('paysId', 3).notNullable().index().references('pays.id')
-      table.string('cheflieuId', 5)
-    })
-    .createTable('departements', table => {
-      table.string('id', 3).primary()
-      table.string('nom').notNullable()
-      table.string('regionId', 2).notNullable().index().references('regions.id')
-      table.string('cheflieuId', 5)
-    })
-    .createTable('communes', table => {
-      table.string('id', 5).primary()
-      table.string('nom').notNullable()
-      table.string('departementId', 3).notNullable().index().references('departements.id')
-    })
-    .createTable('forets', table => {
-      table.string('id', 30).primary()
-      table.string('nom').notNullable()
-    })
-}
-
-export const down = (knex: Knex) => {
-  return knex.schema.dropTable('communes').dropTable('departements').dropTable('regions').dropTable('pays').dropTable('forets')
-}
diff --git a/packages/api/src/knex/migrations-schema/20180521000006_calendrier.ts b/packages/api/src/knex/migrations-schema/20180521000006_calendrier.ts
deleted file mode 100644
index 642dbc2a2a703c18362d4dd72d2478d0a8cfa90d..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20180521000006_calendrier.ts
+++ /dev/null
@@ -1,29 +0,0 @@
-import { Knex } from 'knex'
-export const up = (knex: Knex) => {
-  return knex.schema
-    .createTable('frequences', table => {
-      table.string('id', 3).primary()
-      table.string('nom').notNullable()
-      table.string('periodesNom')
-    })
-    .createTable('annees', table => {
-      table.integer('id', 1).primary()
-      table.string('nom').notNullable()
-      table.string('frequenceId', 3).index().references('frequences.id')
-    })
-    .createTable('trimestres', table => {
-      table.integer('id', 1).primary()
-      table.string('nom').notNullable()
-      table.string('frequenceId', 3).index().references('frequences.id')
-    })
-    .createTable('mois', table => {
-      table.integer('id', 2).primary()
-      table.string('nom').notNullable()
-      table.string('frequenceId', 3).index().references('frequences.id')
-      table.integer('trimestreId', 1).index().references('trimestres.id')
-    })
-}
-
-export const down = (knex: Knex) => {
-  return knex.schema.dropTable('mois').dropTable('trimestres').dropTable('frequences')
-}
diff --git a/packages/api/src/knex/migrations-schema/20180521000007_metas_activites.ts b/packages/api/src/knex/migrations-schema/20180521000007_metas_activites.ts
deleted file mode 100644
index d9ee6c05bc5b6df6dd92e5891ee9248f30fa1b5c..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20180521000007_metas_activites.ts
+++ /dev/null
@@ -1,39 +0,0 @@
-import { Knex } from 'knex'
-export const up = (knex: Knex) =>
-  knex.schema
-    .createTable('activitesTypes', table => {
-      table.string('id', 3).primary()
-      table.string('nom').notNullable()
-      table.specificType('sections', 'jsonb[]').notNullable()
-      table.string('frequenceId', 3).notNullable().index().references('frequences.id')
-      table.string('dateDebut').notNullable()
-      table.integer('delaiMois')
-      table.string('satisfaction_url')
-      table.integer('ordre').notNullable()
-      table.string('email', 128)
-      table.text('description')
-    })
-    .createTable('activitesTypes__titresTypes', table => {
-      table.string('titreTypeId', 3).index().references('titresTypes.id').notNullable()
-      table.string('activiteTypeId', 3).index().references('activitesTypes.id').notNullable()
-      table.primary(['activiteTypeId', 'titreTypeId'])
-    })
-    .createTable('activitesTypes__pays', table => {
-      table.string('paysId', 3).notNullable().index().references('pays.id')
-      table.string('activiteTypeId', 3).index().references('activitesTypes.id').notNullable().onDelete('CASCADE')
-      table.primary(['paysId', 'activiteTypeId'])
-    })
-    .createTable('activitesTypes__documentsTypes', table => {
-      table.string('activiteTypeId', 3).index().references('activitesTypes.id').notNullable().onDelete('CASCADE')
-      table.string('documentTypeId', 3).index().references('documentsTypes.id').notNullable()
-      table.boolean('optionnel')
-      table.primary(['activiteTypeId', 'documentTypeId'])
-    })
-    .createTable('activitesStatuts', table => {
-      table.string('id', 3).primary()
-      table.string('nom').notNullable()
-      table.string('couleur', 16).notNullable()
-    })
-
-export const down = (knex: Knex) =>
-  knex.schema.dropTable('activitesTypes__pays').dropTable('activitesTypes__documentsTypes').dropTable('activitesTypes__titresTypes').dropTable('activitesTypes').dropTable('activitesStatuts')
diff --git a/packages/api/src/knex/migrations-schema/20180521000008_metas_travaux.ts b/packages/api/src/knex/migrations-schema/20180521000008_metas_travaux.ts
deleted file mode 100644
index b620cd320fe338afdbe679595b9036db05978cbd..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20180521000008_metas_travaux.ts
+++ /dev/null
@@ -1,41 +0,0 @@
-import { Knex } from 'knex'
-export const up = (knex: Knex) =>
-  knex.schema
-    .createTable('travauxTypes', table => {
-      table.string('id', 3).primary()
-      table.string('nom').notNullable()
-      table.text('description')
-      table.integer('ordre').notNullable()
-    })
-    .createTable('travauxEtapesTypes', table => {
-      table.string('id', 3).primary()
-      table.string('nom', 128)
-      table.text('description')
-      table.integer('ordre').notNullable()
-    })
-    .createTable('travauxTypes__travauxEtapesTypes', table => {
-      table.string('travauxTypeId', 3).index().references('travauxTypes.id').notNullable()
-      table.string('travauxEtapeTypeId', 3).index().references('travauxEtapesTypes.id').notNullable()
-      table.integer('ordre').notNullable()
-      table.primary(['travauxTypeId', 'travauxEtapeTypeId'])
-    })
-    .createTable('travauxEtapesTypes__etapesStatuts', table => {
-      table.string('travauxEtapeTypeId', 3).index().references('travauxEtapesTypes.id').notNullable()
-      table.string('etapeStatutId', 3).index().references('etapesStatuts.id').notNullable()
-      table.integer('ordre')
-      table.primary(['travauxEtapeTypeId', 'etapeStatutId'])
-    })
-    .createTable('travauxEtapesTypes__documentsTypes', table => {
-      table.string('travauxEtapeTypeId', 3).index().references('travauxEtapesTypes.id').notNullable().onDelete('CASCADE')
-      table.string('documentTypeId', 3).index().references('documentsTypes.id').notNullable()
-      table.boolean('optionnel')
-      table.primary(['travauxEtapeTypeId', 'documentTypeId'])
-    })
-
-export const down = (knex: Knex) =>
-  knex.schema
-    .dropTable('travauxEtapesTypes__documentsTypes')
-    .dropTable('travauxEtapesTypes__etapesStatuts')
-    .dropTable('travauxTypes__travauxEtapesTypes')
-    .dropTable('travauxEtapesTypes')
-    .dropTable('travauxTypes')
diff --git a/packages/api/src/knex/migrations-schema/20180521000009_repertoire.ts b/packages/api/src/knex/migrations-schema/20180521000009_repertoire.ts
deleted file mode 100644
index df88a855a82013aee5e01f47e581168925e47781..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20180521000009_repertoire.ts
+++ /dev/null
@@ -1,142 +0,0 @@
-import { Knex } from 'knex'
-export const up = (knex: Knex) =>
-  knex.schema
-    .createTable('entreprises', table => {
-      table.string('id', 64).primary()
-      table.string('nom').notNullable()
-      table.string('paysId')
-      table.string('legalSiren')
-      table.string('legalEtranger')
-      table.string('legalForme')
-      table.string('categorie')
-      table.string('dateCreation', 10)
-      table.string('adresse')
-      table.string('codePostal')
-      table.string('commune')
-      table.string('cedex')
-      table.string('url', 1024)
-      table.string('email')
-      table.string('telephone')
-      table.boolean('archive').defaultTo(false)
-    })
-    .createTable('entreprisesEtablissements', table => {
-      table.string('id', 64).primary()
-      table.string('entrepriseId', 64).index().references('entreprises.id').notNullable().onDelete('CASCADE')
-      table.string('nom')
-      table.string('legalSiret')
-      table.string('dateDebut', 10)
-      table.string('dateFin', 10)
-    })
-    .createTable('entreprises__documentsTypes', table => {
-      table.string('documentTypeId', 3).index().references('documentsTypes.id').notNullable()
-      table.primary(['documentTypeId'])
-    })
-    .createTable('entreprises__titresTypes', table => {
-      table.string('entrepriseId').index().references('entreprises.id').onUpdate('CASCADE').onDelete('CASCADE').notNullable()
-      table.string('titreTypeId').index().references('titresTypes.id').notNullable()
-      table.boolean('titresCreation')
-      table.primary(['entrepriseId', 'titreTypeId'])
-    })
-    .createTable('administrationsTypes', table => {
-      table.string('id', 64).primary()
-      table.string('nom').notNullable()
-      table.integer('ordre')
-    })
-    .createTable('administrations', table => {
-      table.string('id', 64).primary()
-      table.string('typeId').index().references('administrationsTypes.id').notNullable()
-      table.string('nom').notNullable()
-      table.string('abreviation', 255)
-      table.string('service')
-      table.string('url', 1024)
-      table.string('email')
-      table.string('telephone')
-      table.string('adresse1')
-      table.string('adresse2')
-      table.string('codePostal')
-      table.string('commune')
-      table.string('cedex')
-      table.string('departementId').index().references('departements.id')
-      table.string('regionId').index().references('regions.id')
-    })
-    .createTable('administrations__titresTypes', table => {
-      table.string('administrationId').index().references('administrations.id').onUpdate('CASCADE').onDelete('CASCADE').notNullable()
-      table.string('titreTypeId').index().references('titresTypes.id').notNullable()
-      table.boolean('gestionnaire')
-      table.boolean('associee')
-      table.primary(['administrationId', 'titreTypeId'])
-    })
-    .createTable('administrations__titresTypes__titresStatuts', table => {
-      table.string('administrationId').index().references('administrations.id').onUpdate('CASCADE').onDelete('CASCADE').notNullable()
-      table.string('titreTypeId').index().references('titresTypes.id').notNullable()
-      table.string('titreStatutId').index().references('titresStatuts.id').notNullable()
-      table.boolean('titresModificationInterdit')
-      table.boolean('demarchesModificationInterdit')
-      table.boolean('etapesModificationInterdit')
-      table.primary(['administrationId', 'titreTypeId', 'titreStatutId'])
-    })
-    .createTable('administrations__titresTypes__etapesTypes', table => {
-      table.string('administrationId').index().references('administrations.id').onUpdate('CASCADE').onDelete('CASCADE').notNullable()
-      table.string('titreTypeId').index().references('titresTypes.id').notNullable()
-      table.string('etapeTypeId').index().references('etapesTypes.id').notNullable()
-      table.boolean('lectureInterdit')
-      table.boolean('creationInterdit')
-      table.boolean('modificationInterdit')
-      table.primary(['administrationId', 'titreTypeId', 'etapeTypeId'])
-    })
-    .createTable('administrations__activitesTypes', table => {
-      table.string('activiteTypeId', 3).index().references('activitesTypes.id').notNullable().onDelete('CASCADE')
-      table.string('administrationId', 64).notNullable().index().references('administrations.id').onDelete('CASCADE')
-      table.boolean('modificationInterdit')
-      table.boolean('lectureInterdit')
-      table.primary(['administrationId', 'activiteTypeId'])
-    })
-    .createTable('permissions', table => {
-      table.string('id', 12).primary()
-      table.string('nom').notNullable()
-      table.integer('ordre')
-    })
-    .createTable('utilisateurs', table => {
-      table.string('id').primary()
-      table.string('email').unique()
-      table.string('motDePasse').notNullable()
-      table.string('nom')
-      table.string('prenom')
-      table.string('telephoneFixe')
-      table.string('telephoneMobile')
-      table.string('refreshToken')
-      table.string('permissionId', 12).index().references('permissions.id').notNullable()
-      table.json('preferences')
-      table.boolean('newsletter')
-    })
-    .createTable('utilisateurs__entreprises', table => {
-      table.string('utilisateurId', 64).index().references('utilisateurs.id').onDelete('CASCADE')
-      table.string('entrepriseId', 64).index().references('entreprises.id').onDelete('CASCADE')
-    })
-    .createTable('utilisateurs__administrations', table => {
-      table.string('utilisateurId', 64).index().references('utilisateurs.id').onDelete('CASCADE')
-      table.string('administrationId', 64).index().references('administrations.id').onDelete('CASCADE').onUpdate('CASCADE')
-    })
-    .createTable('etapesTypes__justificatifsTypes', table => {
-      table.string('etapeTypeId', 3).index().references('etapesTypes.id').notNullable().onDelete('CASCADE')
-      table.string('documentTypeId', 3).index().references('entreprises__documentsTypes.documentTypeId').notNullable()
-      table.boolean('optionnel')
-      table.text('description')
-      table.primary(['etapeTypeId', 'documentTypeId'])
-    })
-
-export const down = (knex: Knex) =>
-  knex.schema
-    .dropTable('etapesTypes__justificatifsTypes')
-    .dropTable('utilisateurs__administrations')
-    .dropTable('utilisateurs__entreprises')
-    .dropTable('utilisateurs')
-    .dropTable('permissions')
-    .dropTable('entreprisesEtablissements')
-    .dropTable('entreprises')
-    .dropTable('administrations__titresTypes')
-    .dropTable('administrations__titresTypes__titresStatuts')
-    .dropTable('administrations__titresTypes__etapesTypes')
-    .dropTable('administrations__activitesTypes')
-    .dropTable('administrations')
-    .dropTable('administrationsTypes')
diff --git a/packages/api/src/knex/migrations-schema/20180522000001_titres.ts b/packages/api/src/knex/migrations-schema/20180522000001_titres.ts
deleted file mode 100644
index c1c069cf086e176a266f33ac0e6c7ed3889dc46a..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20180522000001_titres.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-import { Knex } from 'knex'
-export const up = (knex: Knex) =>
-  knex.schema.createTable('titres', table => {
-    table.string('id', 128).primary()
-    table.string('slug').index()
-    table.string('nom').notNullable()
-    table.string('typeId', 3).index().references('titresTypes.id').notNullable()
-    table.string('domaineId', 1).index().references('domaines.id').notNullable()
-    table.string('statutId', 3).index().references('titresStatuts.id').notNullable().defaultTo('ind')
-    table.string('dateDebut', 10)
-    table.string('dateFin', 10)
-    table.string('dateDemande', 10)
-    table.boolean('publicLecture').defaultTo(false)
-    table.boolean('entreprisesLecture').defaultTo(false)
-    table.string('doublonTitreId', 128)
-    table.jsonb('contenusTitreEtapesIds')
-    table.jsonb('propsTitreEtapesIds').defaultTo({})
-    table.specificType('coordonnees', 'POINT')
-  })
-
-export const down = (knex: Knex) => knex.schema.dropTable('titres')
diff --git a/packages/api/src/knex/migrations-schema/20180522000002_titres_demarches_etapes.ts b/packages/api/src/knex/migrations-schema/20180522000002_titres_demarches_etapes.ts
deleted file mode 100644
index 8a6f7396088afefdf8bfc9b1d22428e8f146b882..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20180522000002_titres_demarches_etapes.ts
+++ /dev/null
@@ -1,51 +0,0 @@
-import { Knex } from 'knex'
-export const up = (knex: Knex) => {
-  return knex.schema
-    .createTable('titresDemarches', table => {
-      table.string('id', 128).primary()
-      table.string('slug').index()
-      table.string('titreId', 128).notNullable().index()
-      table.foreign('titreId').references('titres.id').onUpdate('CASCADE').onDelete('CASCADE')
-      table.string('typeId', 3).notNullable().index().references('demarchesTypes.id')
-      table.string('statutId', 3).notNullable().index().references('demarchesStatuts.id').defaultTo('ind')
-      table.boolean('publicLecture').defaultTo(false)
-      table.boolean('entreprisesLecture').defaultTo(false)
-      table.integer('ordre').defaultTo('0')
-    })
-    .createTable('titresDemarchesLiens', table => {
-      table.string('enfantTitreDemarcheId', 128).index()
-      table.foreign('enfantTitreDemarcheId').references('titresDemarches.id').onUpdate('CASCADE').onDelete('CASCADE')
-      table.string('parentTitreDemarcheId', 128).index()
-      table.foreign('parentTitreDemarcheId').references('titresDemarches.id').onUpdate('CASCADE').onDelete('CASCADE')
-      table.primary(['enfantTitreDemarcheId', 'parentTitreDemarcheId'])
-    })
-    .createTable('titresPhases', table => {
-      table.string('titreDemarcheId', 128).primary()
-      table.foreign('titreDemarcheId').references('titresDemarches.id').onUpdate('CASCADE').onDelete('CASCADE')
-      table.string('statutId', 3).notNullable().references('phasesStatuts.id')
-      table.string('dateDebut', 10)
-      table.string('dateFin', 10)
-    })
-    .createTable('titresEtapes', table => {
-      table.string('id', 128).primary()
-      table.string('slug').index()
-      table.string('titreDemarcheId', 128).notNullable().index()
-      table.foreign('titreDemarcheId').references('titresDemarches.id').onUpdate('CASCADE').onDelete('CASCADE')
-      table.string('typeId', 3).notNullable().index().references('etapesTypes.id')
-      table.string('statutId', 3).notNullable().index().references('etapesStatuts.id')
-      table.integer('ordre')
-      table.string('date', 10).notNullable()
-      table.string('dateDebut', 10)
-      table.string('dateFin', 10)
-      table.integer('duree')
-      table.float('surface')
-      table.jsonb('contenu')
-      table.jsonb('heritageContenu')
-      table.jsonb('heritageProps')
-      table.jsonb('incertitudes')
-    })
-}
-
-export const down = (knex: Knex) => {
-  return knex.schema.dropTable('titresEtapes').dropTable('titresPhases').dropTable('titresDemarchesLiens').dropTable('titresDemarches')
-}
diff --git a/packages/api/src/knex/migrations-schema/20180522000003_titres_etapes_substances_emprises.ts b/packages/api/src/knex/migrations-schema/20180522000003_titres_etapes_substances_emprises.ts
deleted file mode 100644
index 410737896e98ab0900e6e14178ffd131f17a924e..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20180522000003_titres_etapes_substances_emprises.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import { Knex } from 'knex'
-export const up = (knex: Knex) => {
-  return knex.schema.createTable('titresSubstances', table => {
-    table.string('titreEtapeId', 128).notNullable().index()
-    table.foreign('titreEtapeId').references('titresEtapes.id').onUpdate('CASCADE').onDelete('CASCADE')
-    table.string('substanceId', 4).index().references('substances.id').notNullable()
-    table.integer('ordre')
-    table.primary(['titreEtapeId', 'substanceId'])
-  })
-}
-
-export const down = (knex: Knex) => {
-  return knex.schema.dropTable('titresSubstances')
-}
diff --git a/packages/api/src/knex/migrations-schema/20180522000004_titres_etapes_utilisateurs_titulaires_amodiataires_administrations.ts b/packages/api/src/knex/migrations-schema/20180522000004_titres_etapes_utilisateurs_titulaires_amodiataires_administrations.ts
deleted file mode 100644
index 0652883a5f344b14d49f096aaf62d46fe87b429a..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20180522000004_titres_etapes_utilisateurs_titulaires_amodiataires_administrations.ts
+++ /dev/null
@@ -1,37 +0,0 @@
-import { Knex } from 'knex'
-export const up = (knex: Knex) => {
-  return knex.schema
-    .createTable('titresTitulaires', table => {
-      table.string('titreEtapeId', 128).notNullable().index()
-      table.foreign('titreEtapeId').references('titresEtapes.id').onUpdate('CASCADE').onDelete('CASCADE')
-      table.string('entrepriseId', 64).index().references('entreprises.id').onUpdate('CASCADE').onDelete('CASCADE').notNullable()
-      table.boolean('operateur')
-      table.primary(['titreEtapeId', 'entrepriseId'])
-    })
-    .createTable('titresAmodiataires', table => {
-      table.string('titreEtapeId', 128).index().references('titresEtapes.id').notNullable().onDelete('CASCADE')
-      table.string('entrepriseId', 64).index().references('entreprises.id').onUpdate('CASCADE').onDelete('CASCADE').notNullable()
-      table.boolean('operateur')
-      table.primary(['titreEtapeId', 'entrepriseId'])
-    })
-
-    .createTable('titresAdministrationsGestionnaires', table => {
-      table.string('titreId', 128).notNullable().index()
-      table.foreign('titreId').references('titres.id').onUpdate('CASCADE').onDelete('CASCADE')
-      table.string('administrationId', 64).index().references('administrations.id').notNullable().onUpdate('CASCADE').onDelete('CASCADE')
-      table.boolean('associee')
-      table.primary(['titreId', 'administrationId'])
-    })
-    .createTable('titresAdministrationsLocales', table => {
-      table.string('titreEtapeId', 128).notNullable().index()
-      table.foreign('titreEtapeId').references('titresEtapes.id').onUpdate('CASCADE').onDelete('CASCADE')
-      table.string('administrationId', 64).index().references('administrations.id').notNullable().onUpdate('CASCADE').onDelete('CASCADE')
-      table.boolean('associee')
-      table.boolean('coordinateur')
-      table.primary(['titreEtapeId', 'administrationId'])
-    })
-}
-
-export const down = (knex: Knex) => {
-  return knex.schema.dropTable('titresAdministrationsLocales').dropTable('titresAdministrationsGestionnaires').dropTable('titresAmodiataires').dropTable('titresTitulaires')
-}
diff --git a/packages/api/src/knex/migrations-schema/20180522000005_titres_etapes_points.ts b/packages/api/src/knex/migrations-schema/20180522000005_titres_etapes_points.ts
deleted file mode 100644
index 4a390d96b7d61895387d5d03d36502f7bb7310f4..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20180522000005_titres_etapes_points.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-import { Knex } from 'knex'
-export const up = (knex: Knex) => {
-  return knex.schema
-    .createTable('titresPoints', table => {
-      table.string('id').primary()
-      table.string('slug').index()
-      table.string('titreEtapeId', 128).notNullable().index()
-      table.foreign('titreEtapeId').references('titresEtapes.id').onUpdate('CASCADE').onDelete('CASCADE')
-      table.specificType('coordonnees', 'POINT').notNullable()
-      table.integer('groupe').notNullable()
-      table.integer('contour').notNullable()
-      table.integer('point').notNullable()
-      table.string('nom')
-      table.text('description')
-      table.boolean('securite')
-      table.boolean('subsidiaire')
-      table.integer('lot')
-    })
-    .createTable('titresPointsReferences', table => {
-      table.string('id').primary()
-      table.string('slug').index()
-      table.string('titrePointId').index().references('titresPoints.id').onUpdate('CASCADE').onDelete('CASCADE')
-      table.string('geoSystemeId', 5).notNullable()
-      table.specificType('coordonnees', 'POINT').notNullable()
-      table.boolean('opposable')
-    })
-}
-
-export const down = (knex: Knex) => {
-  return knex.schema.dropTable('titresPointsReferences').dropTable('titresPoints')
-}
diff --git a/packages/api/src/knex/migrations-schema/20180522000006_titres_etapes_territoires.ts b/packages/api/src/knex/migrations-schema/20180522000006_titres_etapes_territoires.ts
deleted file mode 100644
index fed407eee380dfaa851db7a639fe104b2b1c6179..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20180522000006_titres_etapes_territoires.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import { Knex } from 'knex'
-export const up = (knex: Knex) =>
-  knex.schema
-    .createTable('titresCommunes', table => {
-      table.string('titreEtapeId', 128).notNullable().index()
-      table.foreign('titreEtapeId').references('titresEtapes.id').onUpdate('CASCADE').onDelete('CASCADE')
-      table.string('communeId', 8).notNullable().index().references('communes.id')
-      table.integer('surface')
-      table.primary(['titreEtapeId', 'communeId'])
-    })
-    .createTable('titresForets', table => {
-      table.string('titreEtapeId', 128).notNullable().index()
-      table.foreign('titreEtapeId').references('titresEtapes.id').onUpdate('CASCADE').onDelete('CASCADE')
-      table.string('foretId', 8).notNullable().index().references('forets.id')
-      table.integer('surface')
-      table.primary(['titreEtapeId', 'foretId'])
-    })
-
-export const down = (knex: Knex) => knex.schema.dropTable('titresCommunes').dropTable('titresForets')
diff --git a/packages/api/src/knex/migrations-schema/20180522000009_titres_references.ts b/packages/api/src/knex/migrations-schema/20180522000009_titres_references.ts
deleted file mode 100644
index c0fd25c1cb885bae307a0623fee0f96e1ddf1002..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20180522000009_titres_references.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import { Knex } from 'knex'
-export const up = (knex: Knex) => {
-  return knex.schema.createTable('titresReferences', table => {
-    table.string('titreId', 128).notNullable().index()
-    table.foreign('titreId').references('titres.id').onUpdate('CASCADE').onDelete('CASCADE')
-    table.string('typeId', 3).index().references('referencesTypes.id').notNullable()
-    table.string('nom')
-    table.primary(['titreId', 'typeId', 'nom'])
-  })
-}
-
-export const down = (knex: Knex) => {
-  return knex.schema.dropTable('titresReferences')
-}
diff --git a/packages/api/src/knex/migrations-schema/20181106000002_titres_activites.ts b/packages/api/src/knex/migrations-schema/20181106000002_titres_activites.ts
deleted file mode 100644
index fa5ddc96e1c67615b7434ee9e0c7dfd8c2f2961e..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20181106000002_titres_activites.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import { Knex } from 'knex'
-export const up = (knex: Knex) =>
-  knex.schema.createTable('titresActivites', table => {
-    table.string('id').primary()
-    table.string('slug').index()
-    table.string('titreId', 128).index().references('titres.id').onDelete('CASCADE').onUpdate('CASCADE')
-    table.string('utilisateurId', 128).index().references('utilisateurs.id')
-    table.string('date', 10)
-    table.string('dateSaisie', 10)
-    table.jsonb('contenu')
-    table.specificType('sections', 'jsonb[]')
-    table.string('typeId', 3).index().references('activitesTypes.id').notNullable()
-    table.string('statutId', 3).index().references('activitesStatuts.id').notNullable()
-    table.integer('annee', 4)
-    table.integer('periodeId', 2)
-    table.boolean('suppression')
-  })
-
-export const down = (knex: Knex) => knex.schema.dropTable('titresActivites')
diff --git a/packages/api/src/knex/migrations-schema/20181106000004_titres_travaux.ts b/packages/api/src/knex/migrations-schema/20181106000004_titres_travaux.ts
deleted file mode 100644
index fc842f1078ff69b900a18493483dd52fe5644dbe..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20181106000004_titres_travaux.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { Knex } from 'knex'
-export const up = (knex: Knex) =>
-  knex.schema
-    .createTable('titresTravaux', table => {
-      table.string('id', 128).primary()
-      table.string('slug').index()
-      table.string('titreId', 128).index().references('titres.id').onDelete('CASCADE').onUpdate('CASCADE')
-      table.string('statutId', 3).index().references('demarchesStatuts.id').defaultTo('ind')
-      table.string('typeId', 3).index().references('travauxTypes.id')
-      table.integer('ordre')
-    })
-    .createTable('titresTravauxEtapes', table => {
-      table.string('id').primary()
-      table.string('slug').index()
-      table.string('titreTravauxId', 128).index().references('titresTravaux.id').onDelete('CASCADE').onUpdate('CASCADE')
-      table.string('statutId', 3).index().references('etapesStatuts.id')
-      table.string('typeId', 3).index().references('travauxEtapesTypes.id').notNullable()
-      table.string('date', 10)
-      table.integer('duree')
-      table.float('surface')
-      table.jsonb('contenu')
-      table.integer('ordre')
-    })
-
-export const down = (knex: Knex) => knex.schema.dropTable('titresActivites')
diff --git a/packages/api/src/knex/migrations-schema/20181106000006_documents.ts b/packages/api/src/knex/migrations-schema/20181106000006_documents.ts
deleted file mode 100644
index 6fdc9a62e7029485755dc740b3dba1ad958b606a..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20181106000006_documents.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-import { Knex } from 'knex'
-export const up = (knex: Knex) =>
-  knex.schema
-    .createTable('documents', table => {
-      table.string('id').primary()
-      table.string('typeId', 3).index().references('documentsTypes.id').notNullable()
-      table.string('date', 10).notNullable()
-      table.string('entrepriseId', 64).index()
-      table.foreign('entrepriseId').references('entreprises.id').onUpdate('CASCADE').onDelete('CASCADE')
-      table.string('titreEtapeId', 128).index()
-      table.foreign('titreEtapeId').references('titresEtapes.id').onUpdate('CASCADE').onDelete('CASCADE')
-      table.string('description', 1024)
-      table.string('titreActiviteId', 128).index()
-      table.foreign('titreActiviteId').references('titresActivites.id').onUpdate('CASCADE').onDelete('CASCADE')
-      table.string('titreTravauxEtapeId', 128).index()
-      table.foreign('titreTravauxEtapeId').references('titresTravauxEtapes.id').onUpdate('CASCADE').onDelete('CASCADE')
-      table.boolean('fichier')
-      table.string('fichierTypeId', 3)
-      table.string('url', 1024)
-      table.string('uri', 1024)
-      table.string('jorf', 32)
-      table.string('nor', 32)
-      table.boolean('public_lecture')
-      table.boolean('entreprises_lecture')
-    })
-    .createTable('titresEtapesJustificatifs', table => {
-      table.string('titreEtapeId', 128).index()
-      table.foreign('titreEtapeId').references('titresEtapes.id').onUpdate('CASCADE').onDelete('CASCADE')
-      table.string('documentId').index().references('documents.id').notNullable().onUpdate('CASCADE').onDelete('CASCADE')
-      table.primary(['titreEtapeId', 'documentId'])
-    })
-
-export const down = (knex: Knex) => knex.schema.dropTable('titresEtapesJustificatifs').dropTable('documents')
diff --git a/packages/api/src/knex/migrations-schema/20181106000007_definitions.ts b/packages/api/src/knex/migrations-schema/20181106000007_definitions.ts
deleted file mode 100644
index 89f9928fec6066e1ed327efa34ff544fa4ca89a3..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20181106000007_definitions.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { Knex } from 'knex'
-export const up = (knex: Knex) =>
-  knex.schema.createTable('definitions', table => {
-    table.string('id', 3).primary()
-    table.string('nom').notNullable()
-    table.string('slug').notNullable()
-    table.string('table')
-    table.integer('ordre').notNullable()
-    table.text('description')
-  })
-
-export const down = (knex: Knex) => knex.schema.dropTable('definitions')
diff --git a/packages/api/src/knex/migrations-schema/20181106000008_cache.ts b/packages/api/src/knex/migrations-schema/20181106000008_cache.ts
deleted file mode 100644
index 58e92f7d4fde177be08e333b81fafe5e7bc0ff19..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20181106000008_cache.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { Knex } from 'knex'
-export const up = (knex: Knex) =>
-  knex.schema.createTable('caches', table => {
-    table.string('id', 128).primary()
-    table.jsonb('valeur')
-  })
-
-export const down = (knex: Knex) => knex.schema.dropTable('caches')
diff --git a/packages/api/src/knex/migrations-schema/20210915144021_logs.ts b/packages/api/src/knex/migrations-schema/20210915144021_logs.ts
deleted file mode 100644
index 9e7625c8b7619dbccff337a6f8716c6b8ad759f9..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20210915144021_logs.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { Knex } from 'knex'
-export const up = (knex: Knex) =>
-  knex.schema.createTable('logs', table => {
-    table.string('id').primary()
-    table.string('utilisateurId').index().notNullable()
-    table.dateTime('date').notNullable()
-    table.string('elementId').notNullable()
-    table.enum('operation', ['create', 'update', 'delete']).notNullable()
-    table.jsonb('differences').nullable()
-  })
-
-export const down = (knex: Knex) => knex.schema.dropTable('logs')
diff --git a/packages/api/src/knex/migrations-schema/20210928170751_travaux_delete.ts b/packages/api/src/knex/migrations-schema/20210928170751_travaux_delete.ts
deleted file mode 100644
index 55ead3cdb27bd7998b0af34a096c2bbf1fd50cf2..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20210928170751_travaux_delete.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  await knex.schema.table('demarchesTypes', table => {
-    table.boolean('travaux')
-  })
-
-  await knex.schema.table('documents', table => {
-    table.dropColumn('titre_travaux_etape_id')
-  })
-
-  await knex.schema.dropTable('titres_travaux_etapes')
-
-  return knex.schema.dropTable('titres_travaux')
-}
-
-// eslint-disable-next-line @typescript-eslint/no-unused-vars
-export const down = (knex: Knex) => {
-  // TODO
-}
diff --git a/packages/api/src/knex/migrations-schema/20210929153443_metas_travaux_delete.ts b/packages/api/src/knex/migrations-schema/20210929153443_metas_travaux_delete.ts
deleted file mode 100644
index b107b48bee644c92647a1e81be21c6110465d7b5..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20210929153443_metas_travaux_delete.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  return knex.schema
-    .dropTable('travaux_etapes_types__documents_types')
-    .dropTable('travaux_etapes_types__etapes_statuts')
-    .dropTable('travaux_types__travaux_etapes_types')
-    .dropTable('travaux_etapes_types')
-    .dropTable('travaux_types')
-}
-
-// eslint-disable-next-line @typescript-eslint/no-unused-vars
-export const down = (knex: Knex) => {
-  // TODO
-}
diff --git a/packages/api/src/knex/migrations-schema/20210930103844_titres_administrations.ts b/packages/api/src/knex/migrations-schema/20210930103844_titres_administrations.ts
deleted file mode 100644
index 95d4394813844868d03335169c1c5b7f39ab82b6..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20210930103844_titres_administrations.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  await knex.schema.table('titresAdministrationsLocales', table => table.dropColumn('coordinateur'))
-
-  return knex.schema.createTable('titresAdministrations', table => {
-    table.string('titreId', 128).notNullable().index()
-    table.foreign('titreId').references('titres.id').onUpdate('CASCADE').onDelete('CASCADE')
-    table.string('administrationId', 128).index().references('administrations.id').notNullable()
-    table.primary(['titreId', 'administrationId'])
-  })
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20211019161848_administrations-activites-types-emails-create.ts b/packages/api/src/knex/migrations-schema/20211019161848_administrations-activites-types-emails-create.ts
deleted file mode 100644
index a45d45fce83abd226b9d975b3a1d29b1af59e28a..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20211019161848_administrations-activites-types-emails-create.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  await knex.schema.createTable('administrations__activitesTypes__emails', table => {
-    table.string('activiteTypeId', 3).index().references('activitesTypes.id').notNullable().onDelete('CASCADE')
-    table.string('administrationId', 64).notNullable().index().references('administrations.id').onDelete('CASCADE')
-    table.string('email')
-    table.primary(['administrationId', 'activiteTypeId', 'email'])
-  })
-
-  return knex.schema.table('activitesTypes', table => {
-    table.dropColumn('email')
-  })
-}
-
-export const down = (knex: Knex) => knex.schema.dropTable('administrations__activitesTypes__emails')
diff --git a/packages/api/src/knex/migrations-schema/20211027103109_logs_column_titreId_add.ts b/packages/api/src/knex/migrations-schema/20211027103109_logs_column_titreId_add.ts
deleted file mode 100644
index 06e7b7f9a3c441320ea813c39e74ffa790f6d97a..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20211027103109_logs_column_titreId_add.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  await knex('logs').delete()
-  await knex.schema.renameTable('logs', 'journaux')
-
-  return knex.schema.table('journaux', table => {
-    table.string('titreId', 128).notNullable().index()
-    table.foreign('titreId').references('titres.id').onUpdate('CASCADE').onDelete('CASCADE')
-  })
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20211110153616_sdom-zones-create.ts b/packages/api/src/knex/migrations-schema/20211110153616_sdom-zones-create.ts
deleted file mode 100644
index 7a5bbbbf68ef7dfcb4b22973a2df969999c84660..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20211110153616_sdom-zones-create.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import { Knex } from 'knex'
-export const up = (knex: Knex) =>
-  knex.schema
-    .createTable('sdomZones', table => {
-      table.string('id', 30).primary()
-      table.string('nom').notNullable()
-    })
-    .createTable('titres__sdomZones', table => {
-      table.string('titreEtapeId', 128).notNullable().index()
-      table.foreign('titreEtapeId').references('titresEtapes.id').onUpdate('CASCADE').onDelete('CASCADE')
-      table.string('sdomZoneId', 30).notNullable().index().references('sdomZones.id')
-      table.integer('surface')
-      table.primary(['titreEtapeId', 'sdomZoneId'])
-    })
-
-export const down = (knex: Knex) => knex.schema.dropTable('sdomZones').dropTable('titres__sdomZones')
diff --git a/packages/api/src/knex/migrations-schema/20211123162004_utilisateurs-titres_create.ts b/packages/api/src/knex/migrations-schema/20211123162004_utilisateurs-titres_create.ts
deleted file mode 100644
index b0697d6530956fc860c03656311221d58ed1a2a9..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20211123162004_utilisateurs-titres_create.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { Knex } from 'knex'
-export const up = (knex: Knex) =>
-  knex.schema.createTable('utilisateurs__titres', table => {
-    table.string('utilisateurId').index().references('utilisateurs.id').onDelete('CASCADE')
-    table.string('titreId').index().references('titres.id').onDelete('CASCADE')
-    table.primary(['utilisateurId', 'titreId'])
-  })
-
-export const down = (knex: Knex) => knex.schema.dropTable('utilisateurs__titres')
diff --git a/packages/api/src/knex/migrations-schema/20220127141738_titres_demarches_description_add.ts b/packages/api/src/knex/migrations-schema/20220127141738_titres_demarches_description_add.ts
deleted file mode 100644
index 083a086299615deb37938a144b20de9b6298c4bb..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20220127141738_titres_demarches_description_add.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { Knex } from 'knex'
-export const up = (knex: Knex) =>
-  knex.schema.alterTable('titres_demarches', function (table) {
-    table.string('description').nullable()
-  })
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20220216142302_titres_etapes_decisions_annexes.ts b/packages/api/src/knex/migrations-schema/20220216142302_titres_etapes_decisions_annexes.ts
deleted file mode 100644
index 5f2d0e3f66e890fafefb02b210dfa55086d0b640..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20220216142302_titres_etapes_decisions_annexes.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  return knex.schema.table('titres_etapes', table => {
-    table.specificType('decisions_annexes_sections', 'jsonb[]')
-    table.json('decisions_annexes_contenu')
-  })
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20220308161359_titres_archive_add.ts b/packages/api/src/knex/migrations-schema/20220308161359_titres_archive_add.ts
deleted file mode 100644
index bb5ca809288c12b504ac984fe784d92d81261b2e..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20220308161359_titres_archive_add.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  await knex.schema.alterTable('titres', function (table) {
-    table.boolean('archive').defaultTo(false).notNullable()
-  })
-  await knex.schema.alterTable('titres_demarches', function (table) {
-    table.boolean('archive').defaultTo(false).notNullable()
-  })
-
-  return knex.schema.alterTable('titres_etapes', function (table) {
-    table.boolean('archive').defaultTo(false).notNullable()
-  })
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20220325105157_remove-definitions.ts b/packages/api/src/knex/migrations-schema/20220325105157_remove-definitions.ts
deleted file mode 100644
index a76e0f0ff0650c53449560aa3d7b4abd40abf5b7..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20220325105157_remove-definitions.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import { Knex } from 'knex'
-export const up = (knex: Knex) => knex.schema.dropTable('definitions')
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20220427075921_administrations_delete.ts b/packages/api/src/knex/migrations-schema/20220427075921_administrations_delete.ts
deleted file mode 100644
index abe409839f77e16919fadae9877cfbec5cb3d4bd..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20220427075921_administrations_delete.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  await knex.schema.table('administrations', table => {
-    table.dropColumn('nom')
-    table.dropColumn('abreviation')
-    table.dropColumn('service')
-    table.dropColumn('url')
-    table.dropColumn('email')
-    table.dropColumn('telephone')
-    table.dropColumn('adresse1')
-    table.dropColumn('adresse2')
-    table.dropColumn('code_postal')
-    table.dropColumn('commune')
-    table.dropColumn('cedex')
-    table.dropForeign('typeid')
-  })
-
-  return knex.schema.dropTable('administrations_types')
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20220511154122_ajoute-date-creation-utilisateur.ts b/packages/api/src/knex/migrations-schema/20220511154122_ajoute-date-creation-utilisateur.ts
deleted file mode 100644
index fdbe40ef8cc3a38aa9022376f5bcc4ff148967aa..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20220511154122_ajoute-date-creation-utilisateur.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  await knex.schema.alterTable('utilisateurs', function (table) {
-    table.string('dateCreation')
-  })
-
-  await knex('utilisateurs').update({ dateCreation: '1970-01-01' })
-
-  await knex.schema.alterTable('utilisateurs', function (table) {
-    table.dropNullable('dateCreation')
-  })
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20220512121252_supprime-satisfaction-url.ts b/packages/api/src/knex/migrations-schema/20220512121252_supprime-satisfaction-url.ts
deleted file mode 100644
index 983d55fa0547a3449e7cab4cea7a4d3593ae1493..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20220512121252_supprime-satisfaction-url.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  await knex.schema.table('activitesTypes', table => {
-    table.dropColumn('satisfactionUrl')
-  })
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20220518064538_geo_systemes_delete.ts b/packages/api/src/knex/migrations-schema/20220518064538_geo_systemes_delete.ts
deleted file mode 100644
index 0f67f406e0935cebf8771f0fa4bb096bced5133d..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20220518064538_geo_systemes_delete.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  return knex.schema.dropTable('geo_systemes')
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20220518122355_supprime-devises.ts b/packages/api/src/knex/migrations-schema/20220518122355_supprime-devises.ts
deleted file mode 100644
index c3f2936c8917b795f8fe222c5b2be2ebfce4eac6..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20220518122355_supprime-devises.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  await knex.schema.dropTable('devises')
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20220531134336_remove-substances-fiscales.ts b/packages/api/src/knex/migrations-schema/20220531134336_remove-substances-fiscales.ts
deleted file mode 100644
index a7fa29661e02b4545ed03899be11897344f51704..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20220531134336_remove-substances-fiscales.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  await knex.schema.dropTable('substancesFiscales')
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20220601063231_unites_delete.ts b/packages/api/src/knex/migrations-schema/20220601063231_unites_delete.ts
deleted file mode 100644
index fba1b821150d7b33fa29f0739ec61a85397ae2cf..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20220601063231_unites_delete.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  return knex.schema.dropTable('unites')
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20220609145846_fix-substances-ordre-required.ts b/packages/api/src/knex/migrations-schema/20220609145846_fix-substances-ordre-required.ts
deleted file mode 100644
index 5518fbc8eaa93da3e085f023823779c9cc3831fe..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20220609145846_fix-substances-ordre-required.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  await knex.raw('CREATE UNIQUE INDEX titre_etape_id_ordre_unique on titres_substances(titre_etape_id, ordre) WHERE ordre IS NOT NULL')
-
-  return knex.raw('CREATE UNIQUE INDEX titre_etape_id_unique on titres_substances(titre_etape_id) WHERE ordre IS NULL')
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20220613152312_remove-permission.ts b/packages/api/src/knex/migrations-schema/20220613152312_remove-permission.ts
deleted file mode 100644
index 99e0c82b679fc8761ee0198b9dd3de1ea58a7f77..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20220613152312_remove-permission.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  await knex.schema.alterTable('utilisateurs', function (table) {
-    table.dropIndex('permission_id', 'utilisateurs_permissionid_index')
-    table.dropForeign('permission_id', 'utilisateurs_permissionid_foreign')
-  })
-  await knex.schema.table('utilisateurs', table => {
-    table.renameColumn('permission_id', 'role')
-  })
-
-  await knex.schema.alterTable('utilisateurs', function (t) {
-    t.string('role', 255).notNullable().alter()
-  })
-
-  return knex.schema.dropTable('permissions')
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20220616132604_utilisateurs-administrations-delete.ts b/packages/api/src/knex/migrations-schema/20220616132604_utilisateurs-administrations-delete.ts
deleted file mode 100644
index 0398ba462849f9dcc362a0af2835fd006c956367..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20220616132604_utilisateurs-administrations-delete.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  await knex.schema.table('utilisateurs', table => {
-    table.string('administrationId').index().references('administrations.id')
-  })
-
-  const utilisateursAdministrations = await knex('utilisateurs__administrations')
-
-  for (const { utilisateurId, administrationId } of utilisateursAdministrations) {
-    await knex('utilisateurs').where('id', utilisateurId).update({ administrationId })
-  }
-
-  return knex.schema.dropTable('utilisateurs__administrations')
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20220704122849_territoires-delete.ts b/packages/api/src/knex/migrations-schema/20220704122849_territoires-delete.ts
deleted file mode 100644
index 9bcb7315c6b989f6a22667882dcb1ced8025f353..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20220704122849_territoires-delete.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  await knex.schema.alterTable('activitesTypes__pays', function (table) {
-    table.dropIndex('pays_id', 'activitestypes__pays_paysid_index')
-    table.dropForeign('pays_id', 'activitestypes__pays_paysid_foreign')
-  })
-
-  await knex.schema.alterTable('communes', function (table) {
-    table.dropIndex('departement_id', 'communes_departementid_index')
-    table.dropForeign('departement_id', 'communes_departementid_foreign')
-  })
-
-  await knex.schema.alterTable('administrations', function (table) {
-    table.dropForeign('departement_id', 'administrations_departementid_foreign')
-    table.dropForeign('region_id', 'administrations_regionid_foreign')
-  })
-
-  await knex.schema.dropTable('departements')
-  await knex.schema.dropTable('regions')
-
-  return knex.schema.dropTable('pays')
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20220705125716_administration-delete.ts b/packages/api/src/knex/migrations-schema/20220705125716_administration-delete.ts
deleted file mode 100644
index 82649973af8f1f580ac0f0e631a5033e3e5f45a0..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20220705125716_administration-delete.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { Knex } from 'knex'
-export const up = (knex: Knex) =>
-  knex.schema.alterTable('administrations', function (table) {
-    table.dropColumns('departement_id', 'region_id', 'type_id')
-  })
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20220706145651_titres-titres-create.ts b/packages/api/src/knex/migrations-schema/20220706145651_titres-titres-create.ts
deleted file mode 100644
index 17122220b87ebbeaf7c1001a2678f7d5a4fece7d..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20220706145651_titres-titres-create.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import { Knex } from 'knex'
-export const up = (knex: Knex) =>
-  knex.schema.createTable('titres__titres', table => {
-    table.string('titreFromId').notNullable().index()
-    table.string('titreToId').notNullable().index()
-    table.foreign('titreFromId').references('titres.id')
-    table.foreign('titreToId').references('titres.id')
-    table.primary(['titreFromId', 'titreToId'])
-  })
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20220727082824_supprime-etapes-statuts.ts b/packages/api/src/knex/migrations-schema/20220727082824_supprime-etapes-statuts.ts
deleted file mode 100644
index a3e869b7a0dbc7161d258dda5acf549402632553..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20220727082824_supprime-etapes-statuts.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  await knex.schema.alterTable('titres_etapes', function (table) {
-    table.dropForeign('statut_id', 'titresetapes_statutid_foreign')
-  })
-  await knex.schema.dropTable('etapes_types__etapes_statuts')
-  await knex.schema.dropTable('etapes_statuts')
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20220810150111_substances-legales-code-delete.ts b/packages/api/src/knex/migrations-schema/20220810150111_substances-legales-code-delete.ts
deleted file mode 100644
index ce05503ab9e923ae0f385da0736527a4f9fdb179..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20220810150111_substances-legales-code-delete.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  await knex.schema.alterTable('substancesLegales', function (table) {
-    table.dropColumn('substanceLegaleCodeId')
-  })
-
-  return knex.schema.dropTable('substancesLegalesCodes')
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20220816143105_substances-delete.ts b/packages/api/src/knex/migrations-schema/20220816143105_substances-delete.ts
deleted file mode 100644
index 3c3e4544dcbbbc026f884269b0effeee733cec92..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20220816143105_substances-delete.ts
+++ /dev/null
@@ -1,49 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  await knex.schema.alterTable('titres_substances', function (table) {
-    table.dropForeign('substance_id', 'titressubstances_substanceid_foreign')
-    table.integer('ordre').notNullable().alter()
-  })
-
-  await knex.raw('DROP INDEX titre_etape_id_unique')
-  await knex.raw('DROP INDEX titre_etape_id_ordre_unique')
-  await knex.raw('CREATE UNIQUE INDEX titre_etape_id_ordre_unique on titres_substances(titre_etape_id, ordre)')
-
-  await knex.schema.dropTable('substances__substances_legales')
-  await knex.schema.dropTable('substances_legales')
-  await knex.schema.dropTable('substances')
-
-  await knex('titres_substances').where('substance_id', 'suco').update({ substance_id: 'scoc' })
-
-  await knex('titres_substances').where('substance_id', 'scor').update({ substance_id: 'scoc' })
-
-  await knex('titres_substances').where('substance_id', 'bitm').update({ substance_id: 'hydm' })
-
-  await knex('titres_substances').where('substance_id', 'hydl').update({ substance_id: 'hydo' })
-
-  await knex.schema.alterTable('titres_etapes', function (table) {
-    table.jsonb('substances').index()
-  })
-  const titresSubstances = await knex('titres_substances')
-
-  const substanceIdsByTitre: Record<string, { ordre: number; substanceId: string }[]> = titresSubstances.reduce((acc, ts) => {
-    if (!acc[ts.titreEtapeId]) {
-      acc[ts.titreEtapeId] = []
-    }
-    acc[ts.titreEtapeId].push(ts)
-
-    return acc
-  }, {})
-
-  for (const titreEtapeId in substanceIdsByTitre) {
-    await knex('titres_etapes')
-      .where('id', titreEtapeId)
-      .update({
-        substances: JSON.stringify(substanceIdsByTitre[titreEtapeId].sort((a, b) => a.ordre - b.ordre).map(({ substanceId }) => substanceId)),
-      })
-  }
-
-  await knex.schema.dropTable('titres_substances')
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20220819154128_supprime-frequences.ts b/packages/api/src/knex/migrations-schema/20220819154128_supprime-frequences.ts
deleted file mode 100644
index 78a8936850a8392c06675a48eacae38f5052d971..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20220819154128_supprime-frequences.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  await knex.schema.alterTable('activites_types', function (table) {
-    table.dropForeign('frequence_id', 'activitestypes_frequenceid_foreign')
-  })
-
-  await knex.schema.dropTable('annees')
-  await knex.schema.dropTable('mois')
-  await knex.schema.dropTable('trimestres')
-
-  return knex.schema.dropTable('frequences')
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20220825083849_territoires-create.ts b/packages/api/src/knex/migrations-schema/20220825083849_territoires-create.ts
deleted file mode 100644
index 96957b19efa58b99d4233abb384aa2b6f639d883..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20220825083849_territoires-create.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  await knex.raw('alter table communes ADD COLUMN geometry geometry(Multipolygon,4326)')
-  await knex.raw('alter table forets ADD COLUMN geometry geometry(Multipolygon,4326)')
-  await knex.raw('alter table sdom_zones ADD COLUMN geometry geometry(Multipolygon,4326)')
-
-  await knex.raw('CREATE INDEX index_geo_communes on communes using spgist (geometry)')
-  await knex.raw('CREATE INDEX index_geo_forets on forets using spgist (geometry)')
-  await knex.raw('CREATE INDEX index_geo_sdom_zones on sdom_zones using spgist (geometry)')
-
-  await knex.schema.alterTable('titres_forets', table => {
-    table.dropColumn('surface')
-  })
-
-  await knex.schema.alterTable('titres__sdom_zones', table => {
-    table.dropColumn('surface')
-  })
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20220830095725_supprime-newsletter.ts b/packages/api/src/knex/migrations-schema/20220830095725_supprime-newsletter.ts
deleted file mode 100644
index f8f5d065da82f52fc9e58ad10d71d172a0398f9f..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20220830095725_supprime-newsletter.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { Knex } from 'knex'
-export const up = (knex: Knex) =>
-  knex.schema.alterTable('utilisateurs', table => {
-    table.dropColumn('newsletter')
-  })
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20220901075840_demarches-statuts-delete.ts b/packages/api/src/knex/migrations-schema/20220901075840_demarches-statuts-delete.ts
deleted file mode 100644
index ac722fa2065f2d00cb175160dbf5ee5cebe9f7b4..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20220901075840_demarches-statuts-delete.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  await knex.schema.alterTable('titresDemarches', function (table) {
-    table.dropForeign('statutId')
-  })
-
-  return knex.schema.dropTable('demarchesStatuts')
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20220905073826_deplace-donnees-postgis-hors-objection.ts b/packages/api/src/knex/migrations-schema/20220905073826_deplace-donnees-postgis-hors-objection.ts
deleted file mode 100644
index c1b5b945b1c1cccb23f284cb0c2fb96369fd2544..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20220905073826_deplace-donnees-postgis-hors-objection.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  await knex.raw('alter table communes DROP COLUMN geometry')
-  await knex.raw('alter table forets DROP COLUMN geometry')
-  await knex.raw('alter table sdom_zones DROP COLUMN geometry')
-
-  await knex.raw(
-    `create table communes_postgis(
-            id varchar(5) primary key,
-            geometry geometry(Multipolygon,4326)
-        )`
-  )
-  await knex.raw(
-    `create table forets_postgis(
-            id varchar(30) primary key,
-            geometry geometry(Multipolygon,4326)
-            )`
-  )
-
-  await knex.raw(
-    `create table sdom_zones_postgis(
-            id varchar(30) primary key,
-            geometry geometry(Multipolygon,4326)
-            )`
-  )
-
-  await knex.raw('CREATE INDEX index_geo_communes on communes_postgis using spgist (geometry)')
-  await knex.raw('CREATE INDEX index_geo_forets on forets_postgis using spgist (geometry)')
-  await knex.raw('CREATE INDEX index_geo_sdom_zones on sdom_zones_postgis using spgist (geometry)')
-}
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20220906125338_les-substances-dune-etapes-ne-sont-jamais-nul.ts b/packages/api/src/knex/migrations-schema/20220906125338_les-substances-dune-etapes-ne-sont-jamais-nul.ts
deleted file mode 100644
index 0a7597c1bd1b6bedf6dacdf8d7271fa817d11b8d..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20220906125338_les-substances-dune-etapes-ne-sont-jamais-nul.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  await knex.raw("update titres_etapes set substances='[]'::jsonb where substances is null")
-  await knex.raw("alter table titres_etapes alter column substances set default '[]'::jsonb")
-  await knex.raw('alter table titres_etapes alter column substances set not null')
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20220907070928_supprime-titres-statuts.ts b/packages/api/src/knex/migrations-schema/20220907070928_supprime-titres-statuts.ts
deleted file mode 100644
index 34952085ff69b7f456f07112ed57ff6e83937c4d..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20220907070928_supprime-titres-statuts.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  await knex.schema.alterTable('administrations__titres_types__titres_statuts', function (table) {
-    table.dropForeign('titre_statut_id', 'administrations__titrestypes__titresstatuts_titrestatutid_forei')
-  })
-  await knex.schema.alterTable('titres_types__titres_statuts', function (table) {
-    table.dropForeign('titre_statut_id', 'titrestypes__titresstatuts_titrestatutid_foreign')
-  })
-  await knex.schema.alterTable('titres', function (table) {
-    table.dropForeign('statut_id', 'titres_statutid_foreign')
-    table.renameColumn('statut_id', 'titre_statut_id')
-  })
-
-  await knex.schema.dropTable('titres_statuts')
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20220930084703_supprime-phases-statuts.ts b/packages/api/src/knex/migrations-schema/20220930084703_supprime-phases-statuts.ts
deleted file mode 100644
index 5ffd344742e3baeaefd1c5e2a6508769a07ce459..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20220930084703_supprime-phases-statuts.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  await knex.schema.alterTable('titres_phases', function (table) {
-    table.dropForeign('statut_id', 'titresphases_statutid_foreign')
-  })
-  await knex.schema.alterTable('titres_phases', function (table) {
-    table.renameColumn('statut_id', 'phase_statut_id')
-  })
-
-  await knex.schema.dropTable('phases_statuts')
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20221004061133_globales-delete.ts b/packages/api/src/knex/migrations-schema/20221004061133_globales-delete.ts
deleted file mode 100644
index 3aea7884b4ab892facc08fd4d8777157e76a730e..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20221004061133_globales-delete.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import { Knex } from 'knex'
-export const up = (knex: Knex) => knex.schema.dropTable('globales')
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20221004061444_references-delete.ts b/packages/api/src/knex/migrations-schema/20221004061444_references-delete.ts
deleted file mode 100644
index 99fee9cc540bbb6c49f324287ada2db1e8d798c2..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20221004061444_references-delete.ts
+++ /dev/null
@@ -1,43 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  await knex.schema.alterTable('titresReferences', function (table) {
-    table.dropForeign('type_id', 'titresreferences_typeid_foreign')
-  })
-
-  await knex.schema.alterTable('titresReferences', function (table) {
-    table.renameColumn('type_id', 'reference_type_id')
-  })
-
-  await knex.schema.alterTable('titres', function (table) {
-    table.jsonb('references').index()
-  })
-  const titresReferences = await knex('titres_references').orderBy('referenceTypeId', 'nom')
-
-  const referencesByTitre = titresReferences.reduce((acc, titreReference) => {
-    if (!acc[titreReference.titreId]) {
-      acc[titreReference.titreId] = []
-    }
-    acc[titreReference.titreId].push({
-      nom: titreReference.nom,
-      referenceTypeId: titreReference.referenceTypeId,
-    })
-
-    return acc
-  }, {})
-
-  for (const titreId in referencesByTitre) {
-    await knex('titres')
-      .where('id', titreId)
-      .update({
-        references: JSON.stringify(referencesByTitre[titreId]),
-      })
-  }
-
-  await knex.schema.dropTable('titresReferences')
-  await knex.schema.dropTable('referencesTypes')
-  await knex.raw('update titres set "references"=\'[]\'::jsonb where "references" is null')
-  await knex.raw('alter table titres alter column "references" set default \'[]\'::jsonb')
-  await knex.raw('alter table titres alter column "references" set not null')
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20221012094400_utilisateur-qgis-token.ts b/packages/api/src/knex/migrations-schema/20221012094400_utilisateur-qgis-token.ts
deleted file mode 100644
index b3936062285372254989aa57d4d3ed29d1e1ce7c..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20221012094400_utilisateur-qgis-token.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { Knex } from 'knex'
-export const up = (knex: Knex) =>
-  knex.schema.alterTable('utilisateurs', function (table) {
-    table.string('qgis_token').index()
-  })
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20221012121906_add-facades-maritimes.ts b/packages/api/src/knex/migrations-schema/20221012121906_add-facades-maritimes.ts
deleted file mode 100644
index 523b1dcb8739749d6a0eac1c49ec14108e7f3583..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20221012121906_add-facades-maritimes.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  await knex.schema.createTable('secteurs_maritime', table => {
-    table.integer('id').primary()
-    table.string('nom')
-    table.string('facade')
-  })
-
-  await knex.raw(
-    `create table secteurs_maritime_postgis(
-        id integer primary key,
-        geometry geometry(MultiPolygon,4326),
-        FOREIGN KEY (id)
-          REFERENCES secteurs_maritime (id)
-      )`
-  )
-
-  await knex.raw('CREATE INDEX index_geo_secteurs_maritime on secteurs_maritime_postgis using spgist (geometry)')
-
-  await knex.schema.createTable('titres__secteurs_maritime', table => {
-    table.string('titre_etape_id', 128).notNullable().index()
-    table.foreign('titre_etape_id').references('titres_etapes.id').onUpdate('CASCADE').onDelete('CASCADE')
-    table.integer('secteur_maritime_id').notNullable().index().references('secteurs_maritime.id')
-    table.primary(['titre_etape_id', 'secteur_maritime_id'])
-  })
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20221017122409_tde-static.ts b/packages/api/src/knex/migrations-schema/20221017122409_tde-static.ts
deleted file mode 100644
index 9293b1e988005aa30f96f502d3b16a3a81e0c6ce..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20221017122409_tde-static.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  await knex('activites_types__documents_types').where('document_type_id', 'rwp').update({ documentTypeId: 'rgr' })
-
-  await knex('documents').where('type_id', 'rwp').update({ typeId: 'rgr' })
-
-  await knex('documents_types').where('id', 'rwp').delete()
-
-  await knex.schema.dropTable('etapes_types__documents_types')
-  await knex.schema.dropTable('titresTypes__demarchesTypes__etapesTypes__documentsTypes')
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20221017132033_administrations-titres-types-delete.ts b/packages/api/src/knex/migrations-schema/20221017132033_administrations-titres-types-delete.ts
deleted file mode 100644
index 26bf12bed8f0684111056df5cec16dd66c9a18cf..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20221017132033_administrations-titres-types-delete.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => knex.schema.dropTable('administrations__titresTypes')
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20221020141021_supprime-secteurs-maritimes.ts b/packages/api/src/knex/migrations-schema/20221020141021_supprime-secteurs-maritimes.ts
deleted file mode 100644
index 0d817ba8c7db0f40063edb5d23b2cf17bce45719..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20221020141021_supprime-secteurs-maritimes.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  await knex.schema.alterTable('secteurs_maritime_postgis', function (table) {
-    table.dropForeign('id', 'secteurs_maritime_postgis_id_fkey')
-  })
-  await knex.schema.dropTable('titres__secteurs_maritime')
-  await knex.schema.dropTable('secteurs_maritime')
-
-  await knex.schema.alterTable('titres_etapes', function (table) {
-    table.jsonb('secteurs_maritime').index()
-  })
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20221021121056_delete-titres-administrations.ts b/packages/api/src/knex/migrations-schema/20221021121056_delete-titres-administrations.ts
deleted file mode 100644
index 343964d2780fe44e14dc09914e93e2fc6a953d91..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20221021121056_delete-titres-administrations.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-/* eslint-disable sql/no-unsafe-query */
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  await knex.schema.alterTable('titres_etapes', function (table) {
-    table.jsonb('administrations_locales').index()
-  })
-
-  await knex.raw("update titres set props_titre_etapes_ids = props_titre_etapes_ids  - 'administrations'")
-  await knex.raw(`update titres_etapes te set administrations_locales = (
-    select administrations from (
-      select 
-        titre_etape_id, 
-        jsonb_agg(administration_id) as administrations 
-      from (
-        select * from titres_administrations_locales order by titre_etape_id, administration_id
-      ) tal 
-      group by titre_etape_id
-    ) titre_etape_to_update where titre_etape_id = te.id
-  );`)
-
-  await knex.schema.dropTable('titresAdministrationsLocales')
-
-  return knex.schema.dropTable('titresAdministrations')
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20221102162801_delete-titres-types-titres-statuts.ts b/packages/api/src/knex/migrations-schema/20221102162801_delete-titres-types-titres-statuts.ts
deleted file mode 100644
index 80512ff09fafcd300b4de35826956a29b62e8352..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20221102162801_delete-titres-types-titres-statuts.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  await knex.schema.dropTable('titres_types__titres_statuts')
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20221114135447_delete-useless-columns-etapes-types.ts b/packages/api/src/knex/migrations-schema/20221114135447_delete-useless-columns-etapes-types.ts
deleted file mode 100644
index 55c23db3ef9c1e31bf53dc3ec95de8703e64359c..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20221114135447_delete-useless-columns-etapes-types.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  // colonnes qui servent à rien dans la table etapes_types :
-  // - parent_id
-  // - legal_ref
-  // - legal_lien
-  // - date_debut
-  await knex.schema.alterTable('etapes_types', function (table) {
-    table.dropColumn('parent_id')
-    table.dropColumn('legal_ref')
-    table.dropColumn('legal_lien')
-    table.dropColumn('date_debut')
-  })
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20221116133048_delete-titres-administrations-gestionnaire.ts b/packages/api/src/knex/migrations-schema/20221116133048_delete-titres-administrations-gestionnaire.ts
deleted file mode 100644
index 06e6dce9bc55ced6d214f2f68793cbf41ea5c3f9..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20221116133048_delete-titres-administrations-gestionnaire.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  return knex.schema.dropTable('titres_administrations_gestionnaires')
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20221229082906_migre-sdomzones.ts b/packages/api/src/knex/migrations-schema/20221229082906_migre-sdomzones.ts
deleted file mode 100644
index c6a64f7dce79a64ba867e90af1ae168c29c40f81..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20221229082906_migre-sdomzones.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-/* eslint-disable sql/no-unsafe-query */
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  await knex.schema.alterTable('titres_etapes', function (table) {
-    table.jsonb('sdom_zones').index()
-  })
-  await knex.raw(`update titres_etapes te set sdom_zones = (
-    select sdom from (
-      select 
-        titre_etape_id, 
-        jsonb_agg(sdom_zone_id) as sdom 
-      from (
-        select * from titres__sdom_zones order by titre_etape_id, sdom_zone_id
-      ) tal 
-      group by titre_etape_id
-    ) titre_etape_to_update where titre_etape_id = te.id
-  );`)
-
-  await knex.schema.dropTable('titres__sdom_zones')
-  await knex.schema.dropTable('sdom_zones')
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20230105090114_delete-activites-statuts.ts b/packages/api/src/knex/migrations-schema/20230105090114_delete-activites-statuts.ts
deleted file mode 100644
index f52505ba0b1ee4a4d962bb8bee3dc0ce133cfe39..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20230105090114_delete-activites-statuts.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import { Knex } from 'knex'
-export const up = async (knex: Knex) => {
-  await knex.schema.alterTable('titres_activites', function (table) {
-    table.dropForeign('statut_id', 'titresactivites_statutid_foreign')
-  })
-  await knex.schema.alterTable('titres_activites', function (table) {
-    table.renameColumn('statut_id', 'activite_statut_id')
-  })
-
-  await knex.schema.dropTable('activites_statuts')
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20230124143910_delete-titre-domaine-id.ts b/packages/api/src/knex/migrations-schema/20230124143910_delete-titre-domaine-id.ts
deleted file mode 100644
index b173001d227f865fb539d7f721ce322ec52fa16c..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20230124143910_delete-titre-domaine-id.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import { Knex } from 'knex'
-
-export const up = async (knex: Knex) => {
-  await knex.schema.alterTable('titres', function (table) {
-    table.dropForeign('domaine_id', 'titres_domaineid_foreign')
-    table.dropIndex('domaine_id', 'titres_domaineid_index')
-    table.dropColumn('domaine_id')
-  })
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20230201154720_mot-de-passe-remove-constraint.ts b/packages/api/src/knex/migrations-schema/20230201154720_mot-de-passe-remove-constraint.ts
deleted file mode 100644
index 962c6f435e314d5a75530391fa5d7cf3be2c38ef..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20230201154720_mot-de-passe-remove-constraint.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { Knex } from 'knex'
-
-export const up = async (knex: Knex) => {
-  await knex.raw('alter table utilisateurs alter column "mot_de_passe" drop not null')
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20230208145704_supprime-titresTypes-demarchesTypes.ts b/packages/api/src/knex/migrations-schema/20230208145704_supprime-titresTypes-demarchesTypes.ts
deleted file mode 100644
index f26da6a4be531efc11b9b95454423e10e18f2903..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20230208145704_supprime-titresTypes-demarchesTypes.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { Knex } from 'knex'
-
-export const up = async (knex: Knex) => {
-  return knex.schema.dropTable('titres_types__demarches_types')
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20230309090214_utilisateurs-password-delete.ts b/packages/api/src/knex/migrations-schema/20230309090214_utilisateurs-password-delete.ts
deleted file mode 100644
index b14ed7a0d15ce01f3781585c90175c1cac1411a3..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20230309090214_utilisateurs-password-delete.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { Knex } from 'knex'
-
-export const up = async (knex: Knex) => {
-  await knex.raw('alter table utilisateurs drop column "mot_de_passe"')
-  await knex.raw('alter table utilisateurs drop column "preferences"')
-  await knex.raw('alter table utilisateurs drop column "refresh_token"')
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20230403155351_delete-administrations-titreType.ts b/packages/api/src/knex/migrations-schema/20230403155351_delete-administrations-titreType.ts
deleted file mode 100644
index 41a95105a5c2d57219ac5ab9d970c05a06a7ad6c..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20230403155351_delete-administrations-titreType.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { Knex } from 'knex'
-
-export const up = async (knex: Knex) => {
-  await knex.schema.dropTable('administrations__titresTypes__titresStatuts')
-
-  return knex.schema.dropTable('administrations__titresTypes__etapesTypes')
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20230406130205_delete-titres-phases.ts b/packages/api/src/knex/migrations-schema/20230406130205_delete-titres-phases.ts
deleted file mode 100644
index a0e510f45d8781f4bd4a9f1956f757e3d649f551..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20230406130205_delete-titres-phases.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { Knex } from 'knex'
-
-export const up = async (knex: Knex) => {
-  await knex.schema.raw('ALTER TABLE public.titres_demarches ADD demarche_date_debut varchar(10) NULL;')
-  await knex.schema.raw('ALTER TABLE public.titres_demarches ADD demarche_date_fin varchar(10) NULL;')
-  await knex.raw('update titres_demarches td set demarche_date_debut = ( select date_debut from titres_phases where titre_demarche_id = td.id)')
-  await knex.raw('update titres_demarches td set demarche_date_fin = ( select date_fin from titres_phases where titre_demarche_id = td.id)')
-
-  return knex.schema.dropTable('titres_phases')
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20230420072743_supprime-securite.ts b/packages/api/src/knex/migrations-schema/20230420072743_supprime-securite.ts
deleted file mode 100644
index e99f6314d9435c47db8ceb11a5d4bbceccb6ae88..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20230420072743_supprime-securite.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { Knex } from 'knex'
-
-export const up = async (knex: Knex) => {
-  await knex.raw('alter table titres_points drop column "securite"')
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20230420123259_delete-titres-dates.ts b/packages/api/src/knex/migrations-schema/20230420123259_delete-titres-dates.ts
deleted file mode 100644
index 0b79fc45ac86c518976ae89591469b40ad783198..0000000000000000000000000000000000000000
--- a/packages/api/src/knex/migrations-schema/20230420123259_delete-titres-dates.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { Knex } from 'knex'
-
-export const up = async (knex: Knex) => {
-  await knex.raw('alter table titres drop column "date_debut"')
-  await knex.raw('alter table titres drop column "date_fin"')
-  await knex.raw('alter table titres drop column "date_demande"')
-}
-
-export const down = () => ({})
diff --git a/packages/api/src/knex/migrations/20230413090214_init.ts b/packages/api/src/knex/migrations/20230413090214_init.ts
new file mode 100644
index 0000000000000000000000000000000000000000..b920d16e8bebbb52a76193ec89d8960acca4f67c
--- /dev/null
+++ b/packages/api/src/knex/migrations/20230413090214_init.ts
@@ -0,0 +1,12 @@
+import { Knex } from 'knex'
+import { readFile } from 'node:fs/promises'
+import path, { join } from 'node:path'
+import { fileURLToPath } from 'url'
+
+export const up = async (knex: Knex) => {
+  const __dirname = path.dirname(fileURLToPath(import.meta.url))
+  const sql = await readFile(join(__dirname, './20230413090214_init_schema.sql'), { encoding: 'utf-8' })
+  await knex.raw(sql)
+}
+
+export const down = () => ({})
diff --git a/packages/api/src/knex/migrations/20230413090214_init_schema.sql b/packages/api/src/knex/migrations/20230413090214_init_schema.sql
new file mode 100644
index 0000000000000000000000000000000000000000..db55c06f610e7e4360eca7969f4a699095686fb6
--- /dev/null
+++ b/packages/api/src/knex/migrations/20230413090214_init_schema.sql
@@ -0,0 +1,657 @@
+SET default_tablespace = '';
+SET default_table_access_method = heap;
+CREATE EXTENSION IF NOT EXISTS postgis;
+CREATE TABLE public.activites_types (
+    id character varying(3) NOT NULL,
+    nom character varying(255) NOT NULL,
+    sections jsonb[] NOT NULL,
+    frequence_id character varying(3) NOT NULL,
+    date_debut character varying(255) NOT NULL,
+    delai_mois integer,
+    ordre integer NOT NULL,
+    description text
+);
+ALTER TABLE public.activites_types OWNER TO postgres;
+CREATE TABLE public.activites_types__documents_types (
+    activite_type_id character varying(3) NOT NULL,
+    document_type_id character varying(3) NOT NULL,
+    optionnel boolean
+);
+ALTER TABLE public.activites_types__documents_types OWNER TO postgres;
+CREATE TABLE public.activites_types__pays (
+    pays_id character varying(3) NOT NULL,
+    activite_type_id character varying(3) NOT NULL
+);
+ALTER TABLE public.activites_types__pays OWNER TO postgres;
+CREATE TABLE public.activites_types__titres_types (
+    titre_type_id character varying(3) NOT NULL,
+    activite_type_id character varying(3) NOT NULL
+);
+ALTER TABLE public.activites_types__titres_types OWNER TO postgres;
+CREATE TABLE public.administrations (
+    id character varying(64) NOT NULL
+);
+ALTER TABLE public.administrations OWNER TO postgres;
+CREATE TABLE public.administrations__activites_types (
+    activite_type_id character varying(3) NOT NULL,
+    administration_id character varying(64) NOT NULL,
+    modification_interdit boolean,
+    lecture_interdit boolean
+);
+ALTER TABLE public.administrations__activites_types OWNER TO postgres;
+CREATE TABLE public.administrations__activites_types__emails (
+    activite_type_id character varying(3) NOT NULL,
+    administration_id character varying(64) NOT NULL,
+    email character varying(255) NOT NULL
+);
+ALTER TABLE public.administrations__activites_types__emails OWNER TO postgres;
+CREATE TABLE public.caches (
+    id character varying(128) NOT NULL,
+    valeur jsonb
+);
+ALTER TABLE public.caches OWNER TO postgres;
+CREATE TABLE public.communes (
+    id character varying(5) NOT NULL,
+    nom character varying(255) NOT NULL,
+    departement_id character varying(3) NOT NULL
+);
+ALTER TABLE public.communes OWNER TO postgres;
+CREATE TABLE public.communes_postgis (
+    id character varying(5) NOT NULL,
+    geometry public.geometry(MultiPolygon,4326)
+);
+ALTER TABLE public.communes_postgis OWNER TO postgres;
+CREATE TABLE public.demarches_types (
+    id character varying(3) NOT NULL,
+    nom character varying(255) NOT NULL,
+    description text,
+    ordre integer,
+    duree boolean,
+    points boolean,
+    substances boolean,
+    titulaires boolean,
+    renouvelable boolean,
+    exception boolean,
+    auto boolean,
+    travaux boolean
+);
+ALTER TABLE public.demarches_types OWNER TO postgres;
+CREATE TABLE public.documents (
+    id character varying(255) NOT NULL,
+    type_id character varying(3) NOT NULL,
+    date character varying(10) NOT NULL,
+    entreprise_id character varying(64),
+    titre_etape_id character varying(128),
+    description character varying(1024),
+    titre_activite_id character varying(128),
+    fichier boolean,
+    fichier_type_id character varying(3),
+    url character varying(1024),
+    uri character varying(1024),
+    jorf character varying(32),
+    nor character varying(32),
+    public_lecture boolean,
+    entreprises_lecture boolean
+);
+ALTER TABLE public.documents OWNER TO postgres;
+CREATE TABLE public.documents_types (
+    id character varying(3) NOT NULL,
+    nom character varying(255) NOT NULL,
+    description text
+);
+ALTER TABLE public.documents_types OWNER TO postgres;
+CREATE TABLE public.domaines (
+    id character varying(1) NOT NULL,
+    nom character varying(255) NOT NULL,
+    description text,
+    ordre integer NOT NULL
+);
+ALTER TABLE public.domaines OWNER TO postgres;
+CREATE TABLE public.entreprises (
+    id character varying(64) NOT NULL,
+    nom character varying(255) NOT NULL,
+    pays_id character varying(255),
+    legal_siren character varying(255),
+    legal_etranger character varying(255),
+    legal_forme character varying(255),
+    categorie character varying(255),
+    date_creation character varying(10),
+    adresse character varying(255),
+    code_postal character varying(255),
+    commune character varying(255),
+    cedex character varying(255),
+    url character varying(1024),
+    email character varying(255),
+    telephone character varying(255),
+    archive boolean DEFAULT false
+);
+ALTER TABLE public.entreprises OWNER TO postgres;
+CREATE TABLE public.entreprises__documents_types (
+    document_type_id character varying(3) NOT NULL
+);
+ALTER TABLE public.entreprises__documents_types OWNER TO postgres;
+CREATE TABLE public.entreprises_etablissements (
+    id character varying(64) NOT NULL,
+    entreprise_id character varying(64) NOT NULL,
+    nom character varying(255),
+    legal_siret character varying(255),
+    date_debut character varying(10),
+    date_fin character varying(10)
+);
+ALTER TABLE public.entreprises_etablissements OWNER TO postgres;
+CREATE TABLE public.etapes_types (
+    id character varying(3) NOT NULL,
+    nom character varying(128),
+    description text,
+    ordre integer NOT NULL,
+    fondamentale boolean,
+    "unique" boolean,
+    acceptation_auto boolean,
+    date_fin character varying(10),
+    sections jsonb[],
+    public_lecture boolean,
+    entreprises_lecture boolean
+);
+ALTER TABLE public.etapes_types OWNER TO postgres;
+CREATE TABLE public.etapes_types__justificatifs_types (
+    etape_type_id character varying(3) NOT NULL,
+    document_type_id character varying(3) NOT NULL,
+    optionnel boolean,
+    description text
+);
+ALTER TABLE public.etapes_types__justificatifs_types OWNER TO postgres;
+CREATE TABLE public.forets (
+    id character varying(30) NOT NULL,
+    nom character varying(255) NOT NULL
+);
+ALTER TABLE public.forets OWNER TO postgres;
+CREATE TABLE public.forets_postgis (
+    id character varying(30) NOT NULL,
+    geometry public.geometry(MultiPolygon,4326)
+);
+ALTER TABLE public.forets_postgis OWNER TO postgres;
+CREATE TABLE public.journaux (
+    id character varying(255) NOT NULL,
+    utilisateur_id character varying(255) NOT NULL,
+    date timestamp with time zone NOT NULL,
+    element_id character varying(255) NOT NULL,
+    operation text NOT NULL,
+    differences jsonb,
+    titre_id character varying(128) NOT NULL,
+    CONSTRAINT logs_operation_check CHECK ((operation = ANY (ARRAY['create'::text, 'update'::text, 'delete'::text])))
+);
+ALTER TABLE public.journaux OWNER TO postgres;
+CREATE TABLE public.sdom_zones_postgis (
+    id character varying(30) NOT NULL,
+    geometry public.geometry(MultiPolygon,4326)
+);
+ALTER TABLE public.sdom_zones_postgis OWNER TO postgres;
+CREATE TABLE public.secteurs_maritime_postgis (
+    id integer NOT NULL,
+    geometry public.geometry(MultiPolygon,4326)
+);
+ALTER TABLE public.secteurs_maritime_postgis OWNER TO postgres;
+CREATE TABLE public.titres (
+    id character varying(128) NOT NULL,
+    nom character varying(255) NOT NULL,
+    type_id character varying(3) NOT NULL,
+    titre_statut_id character varying(3) DEFAULT 'ind'::character varying NOT NULL,
+    public_lecture boolean DEFAULT false,
+    entreprises_lecture boolean DEFAULT false,
+    doublon_titre_id character varying(128),
+    contenus_titre_etapes_ids jsonb,
+    coordonnees point,
+    props_titre_etapes_ids jsonb DEFAULT '{}'::jsonb,
+    slug character varying(255),
+    archive boolean DEFAULT false NOT NULL,
+    "references" jsonb DEFAULT '[]'::jsonb NOT NULL
+);
+ALTER TABLE public.titres OWNER TO postgres;
+CREATE TABLE public.titres__titres (
+    titre_from_id character varying(255) NOT NULL,
+    titre_to_id character varying(255) NOT NULL
+);
+ALTER TABLE public.titres__titres OWNER TO postgres;
+CREATE TABLE public.titres_activites (
+    id character varying(255) NOT NULL,
+    titre_id character varying(128),
+    utilisateur_id character varying(128),
+    date character varying(10),
+    date_saisie character varying(10),
+    contenu jsonb,
+    type_id character varying(3) NOT NULL,
+    activite_statut_id character varying(3) NOT NULL,
+    annee integer NOT NULL,
+    periode_id integer,
+    sections jsonb[],
+    suppression boolean,
+    slug character varying(255)
+);
+ALTER TABLE public.titres_activites OWNER TO postgres;
+CREATE TABLE public.titres_amodiataires (
+    titre_etape_id character varying(128) NOT NULL,
+    entreprise_id character varying(64) NOT NULL,
+    operateur boolean
+);
+ALTER TABLE public.titres_amodiataires OWNER TO postgres;
+CREATE TABLE public.titres_communes (
+    titre_etape_id character varying(128) NOT NULL,
+    commune_id character varying(8) NOT NULL,
+    surface integer
+);
+ALTER TABLE public.titres_communes OWNER TO postgres;
+CREATE TABLE public.titres_demarches (
+    id character varying(128) NOT NULL,
+    titre_id character varying(128) NOT NULL,
+    type_id character varying(3) NOT NULL,
+    statut_id character varying(3) DEFAULT 'ind'::character varying NOT NULL,
+    public_lecture boolean DEFAULT false,
+    entreprises_lecture boolean DEFAULT false,
+    ordre integer DEFAULT 0,
+    slug character varying(255),
+    demarche_date_debut character varying(10),
+    demarche_date_fin character varying(10),
+    description character varying(255),
+    archive boolean DEFAULT false NOT NULL
+);
+ALTER TABLE public.titres_demarches OWNER TO postgres;
+CREATE TABLE public.titres_demarches_liens (
+    enfant_titre_demarche_id character varying(128) NOT NULL,
+    parent_titre_demarche_id character varying(128) NOT NULL
+);
+ALTER TABLE public.titres_demarches_liens OWNER TO postgres;
+CREATE TABLE public.titres_etapes (
+    id character varying(128) NOT NULL,
+    titre_demarche_id character varying(128) NOT NULL,
+    type_id character varying(3) NOT NULL,
+    statut_id character varying(3) NOT NULL,
+    ordre integer,
+    date character varying(10) NOT NULL,
+    date_debut character varying(10),
+    date_fin character varying(10),
+    duree integer,
+    surface real,
+    contenu jsonb,
+    incertitudes jsonb,
+    heritage_props jsonb,
+    heritage_contenu jsonb,
+    slug character varying(255),
+    decisions_annexes_sections jsonb[],
+    decisions_annexes_contenu json,
+    archive boolean DEFAULT false NOT NULL,
+    substances jsonb DEFAULT '[]'::jsonb NOT NULL,
+    secteurs_maritime jsonb,
+    administrations_locales jsonb,
+    sdom_zones jsonb
+);
+ALTER TABLE public.titres_etapes OWNER TO postgres;
+CREATE TABLE public.titres_etapes_justificatifs (
+    titre_etape_id character varying(128) NOT NULL,
+    document_id character varying(255) NOT NULL
+);
+ALTER TABLE public.titres_etapes_justificatifs OWNER TO postgres;
+CREATE TABLE public.titres_forets (
+    titre_etape_id character varying(128) NOT NULL,
+    foret_id character varying(8) NOT NULL
+);
+ALTER TABLE public.titres_forets OWNER TO postgres;
+CREATE TABLE public.titres_points (
+    id character varying(255) NOT NULL,
+    titre_etape_id character varying(128) NOT NULL,
+    coordonnees point NOT NULL,
+    groupe integer NOT NULL,
+    contour integer NOT NULL,
+    point integer NOT NULL,
+    nom character varying(255),
+    description text,
+    subsidiaire boolean,
+    lot integer,
+    slug character varying(255)
+);
+ALTER TABLE public.titres_points OWNER TO postgres;
+CREATE TABLE public.titres_points_references (
+    id character varying(255) NOT NULL,
+    titre_point_id character varying(255),
+    geo_systeme_id character varying(5) NOT NULL,
+    coordonnees point NOT NULL,
+    opposable boolean,
+    slug character varying(255)
+);
+ALTER TABLE public.titres_points_references OWNER TO postgres;
+CREATE TABLE public.titres_titulaires (
+    titre_etape_id character varying(128) NOT NULL,
+    entreprise_id character varying(64) NOT NULL,
+    operateur boolean
+);
+ALTER TABLE public.titres_titulaires OWNER TO postgres;
+CREATE TABLE public.titres_types (
+    id character varying(3) NOT NULL,
+    domaine_id character varying(1) NOT NULL,
+    type_id character varying(3) NOT NULL,
+    contenu_ids jsonb[],
+    archive boolean
+);
+ALTER TABLE public.titres_types OWNER TO postgres;
+CREATE TABLE public.titres_types__demarches_types__etapes_types (
+    titre_type_id character varying(3) NOT NULL,
+    ordre integer,
+    demarche_type_id character varying(7) NOT NULL,
+    etape_type_id character varying(3) NOT NULL,
+    sections jsonb[]
+);
+ALTER TABLE public.titres_types__demarches_types__etapes_types OWNER TO postgres;
+CREATE TABLE public.titres_types__demarches_types__etapes_types__justificatifs_t (
+    titre_type_id character varying(3) NOT NULL,
+    demarche_type_id character varying(7) NOT NULL,
+    etape_type_id character varying(3) NOT NULL,
+    document_type_id character varying(3) NOT NULL,
+    optionnel boolean,
+    description text
+);
+ALTER TABLE public.titres_types__demarches_types__etapes_types__justificatifs_t OWNER TO postgres;
+CREATE TABLE public.titres_types_types (
+    id character varying(2) NOT NULL,
+    nom character varying(255) NOT NULL,
+    description text,
+    ordre integer NOT NULL
+);
+ALTER TABLE public.titres_types_types OWNER TO postgres;
+CREATE TABLE public.utilisateurs (
+    id character varying(255) NOT NULL,
+    email character varying(255),
+    nom character varying(255),
+    prenom character varying(255),
+    telephone_fixe character varying(255),
+    telephone_mobile character varying(255),
+    role character varying(255) NOT NULL,
+    date_creation character varying(255) NOT NULL,
+    administration_id character varying(255),
+    qgis_token character varying(255)
+);
+ALTER TABLE public.utilisateurs OWNER TO postgres;
+CREATE TABLE public.utilisateurs__entreprises (
+    utilisateur_id character varying(64),
+    entreprise_id character varying(64)
+);
+ALTER TABLE public.utilisateurs__entreprises OWNER TO postgres;
+CREATE TABLE public.utilisateurs__titres (
+    utilisateur_id character varying(255) NOT NULL,
+    titre_id character varying(255) NOT NULL
+);
+ALTER TABLE public.utilisateurs__titres OWNER TO postgres;
+ALTER TABLE ONLY public.activites_types__documents_types
+    ADD CONSTRAINT activites_types__documents_types_pkey PRIMARY KEY (activite_type_id, document_type_id);
+ALTER TABLE ONLY public.activites_types__pays
+    ADD CONSTRAINT activites_types__pays_pkey PRIMARY KEY (pays_id, activite_type_id);
+ALTER TABLE ONLY public.activites_types
+    ADD CONSTRAINT activites_types_pkey PRIMARY KEY (id);
+ALTER TABLE ONLY public.administrations__activites_types__emails
+    ADD CONSTRAINT administrations__activites_types__emails_pkey PRIMARY KEY (administration_id, activite_type_id, email);
+ALTER TABLE ONLY public.administrations
+    ADD CONSTRAINT administrations_pkey PRIMARY KEY (id);
+ALTER TABLE ONLY public.caches
+    ADD CONSTRAINT caches_pkey PRIMARY KEY (id);
+ALTER TABLE ONLY public.communes
+    ADD CONSTRAINT communes_pkey PRIMARY KEY (id);
+ALTER TABLE ONLY public.communes_postgis
+    ADD CONSTRAINT communes_postgis_pkey PRIMARY KEY (id);
+ALTER TABLE ONLY public.demarches_types
+    ADD CONSTRAINT demarches_types_pkey PRIMARY KEY (id);
+ALTER TABLE ONLY public.documents
+    ADD CONSTRAINT documents_pkey PRIMARY KEY (id);
+ALTER TABLE ONLY public.documents_types
+    ADD CONSTRAINT documents_types_pkey PRIMARY KEY (id);
+ALTER TABLE ONLY public.domaines
+    ADD CONSTRAINT domaines_pkey PRIMARY KEY (id);
+ALTER TABLE ONLY public.entreprises__documents_types
+    ADD CONSTRAINT entreprises__documents_types_pkey PRIMARY KEY (document_type_id);
+ALTER TABLE ONLY public.entreprises_etablissements
+    ADD CONSTRAINT entreprises_etablissements_pkey PRIMARY KEY (id);
+ALTER TABLE ONLY public.entreprises
+    ADD CONSTRAINT entreprises_pkey PRIMARY KEY (id);
+ALTER TABLE ONLY public.etapes_types__justificatifs_types
+    ADD CONSTRAINT etapes_types__justificatifs_types_pkey PRIMARY KEY (etape_type_id, document_type_id);
+ALTER TABLE ONLY public.etapes_types
+    ADD CONSTRAINT etapes_types_pkey PRIMARY KEY (id);
+ALTER TABLE ONLY public.forets
+    ADD CONSTRAINT forets_pkey PRIMARY KEY (id);
+ALTER TABLE ONLY public.forets_postgis
+    ADD CONSTRAINT forets_postgis_pkey PRIMARY KEY (id);
+ALTER TABLE ONLY public.journaux
+    ADD CONSTRAINT logs_pkey PRIMARY KEY (id);
+ALTER TABLE ONLY public.sdom_zones_postgis
+    ADD CONSTRAINT sdom_zones_postgis_pkey PRIMARY KEY (id);
+ALTER TABLE ONLY public.secteurs_maritime_postgis
+    ADD CONSTRAINT secteurs_maritime_postgis_pkey PRIMARY KEY (id);
+ALTER TABLE ONLY public.titres__titres
+    ADD CONSTRAINT titres__titres_pkey PRIMARY KEY (titre_from_id, titre_to_id);
+ALTER TABLE ONLY public.titres_activites
+    ADD CONSTRAINT titres_activites_pkey PRIMARY KEY (id);
+ALTER TABLE ONLY public.titres_amodiataires
+    ADD CONSTRAINT titres_amodiataires_pkey PRIMARY KEY (titre_etape_id, entreprise_id);
+ALTER TABLE ONLY public.titres_communes
+    ADD CONSTRAINT titres_communes_pkey PRIMARY KEY (titre_etape_id, commune_id);
+ALTER TABLE ONLY public.titres_demarches_liens
+    ADD CONSTRAINT titres_demarches_liens_pkey PRIMARY KEY (enfant_titre_demarche_id, parent_titre_demarche_id);
+ALTER TABLE ONLY public.titres_demarches
+    ADD CONSTRAINT titres_demarches_pkey PRIMARY KEY (id);
+ALTER TABLE ONLY public.titres_etapes_justificatifs
+    ADD CONSTRAINT titres_etapes_justificatifs_pkey PRIMARY KEY (titre_etape_id, document_id);
+ALTER TABLE ONLY public.titres_etapes
+    ADD CONSTRAINT titres_etapes_pkey PRIMARY KEY (id);
+ALTER TABLE ONLY public.titres_forets
+    ADD CONSTRAINT titres_forets_pkey PRIMARY KEY (titre_etape_id, foret_id);
+ALTER TABLE ONLY public.titres
+    ADD CONSTRAINT titres_pkey PRIMARY KEY (id);
+ALTER TABLE ONLY public.titres_points
+    ADD CONSTRAINT titres_points_pkey PRIMARY KEY (id);
+ALTER TABLE ONLY public.titres_points_references
+    ADD CONSTRAINT titres_points_references_pkey PRIMARY KEY (id);
+ALTER TABLE ONLY public.titres_titulaires
+    ADD CONSTRAINT titres_titulaires_pkey PRIMARY KEY (titre_etape_id, entreprise_id);
+ALTER TABLE ONLY public.activites_types__titres_types
+    ADD CONSTRAINT titres_types__activites_types_pkey PRIMARY KEY (titre_type_id, activite_type_id);
+ALTER TABLE ONLY public.titres_types__demarches_types__etapes_types__justificatifs_t
+    ADD CONSTRAINT titres_types__demarches_types__etapes_types__justificatifs_t_pk PRIMARY KEY (titre_type_id, demarche_type_id, etape_type_id, document_type_id);
+ALTER TABLE ONLY public.titres_types__demarches_types__etapes_types
+    ADD CONSTRAINT titres_types__demarches_types__etapes_types_pkey PRIMARY KEY (titre_type_id, demarche_type_id, etape_type_id);
+ALTER TABLE ONLY public.titres_types
+    ADD CONSTRAINT titres_types_pkey PRIMARY KEY (id);
+ALTER TABLE ONLY public.titres_types_types
+    ADD CONSTRAINT titres_types_types_pkey PRIMARY KEY (id);
+ALTER TABLE ONLY public.titres_types
+    ADD CONSTRAINT titrestypes_domaineid_typeid_unique UNIQUE (domaine_id, type_id);
+ALTER TABLE ONLY public.utilisateurs__titres
+    ADD CONSTRAINT utilisateurs__titres_pkey PRIMARY KEY (utilisateur_id, titre_id);
+ALTER TABLE ONLY public.utilisateurs
+    ADD CONSTRAINT utilisateurs_email_unique UNIQUE (email);
+ALTER TABLE ONLY public.utilisateurs
+    ADD CONSTRAINT utilisateurs_pkey PRIMARY KEY (id);
+CREATE INDEX activitestypes__documentstypes_activitetypeid_index ON public.activites_types__documents_types USING btree (activite_type_id);
+CREATE INDEX activitestypes__documentstypes_documenttypeid_index ON public.activites_types__documents_types USING btree (document_type_id);
+CREATE INDEX activitestypes__pays_activitetypeid_index ON public.activites_types__pays USING btree (activite_type_id);
+CREATE INDEX activitestypes_frequenceid_index ON public.activites_types USING btree (frequence_id);
+CREATE INDEX administrations__activitestypes__emails_activitetypeid_index ON public.administrations__activites_types__emails USING btree (activite_type_id);
+CREATE INDEX administrations__activitestypes__emails_administrationid_index ON public.administrations__activites_types__emails USING btree (administration_id);
+CREATE INDEX administrations__activitestypes_activitetypeid_index ON public.administrations__activites_types USING btree (activite_type_id);
+CREATE INDEX administrations__activitestypes_administrationid_index ON public.administrations__activites_types USING btree (administration_id);
+CREATE INDEX documents_entrepriseid_index ON public.documents USING btree (entreprise_id);
+CREATE INDEX documents_titreactiviteid_index ON public.documents USING btree (titre_activite_id);
+CREATE INDEX documents_titreetapeid_index ON public.documents USING btree (titre_etape_id);
+CREATE INDEX documents_typeid_index ON public.documents USING btree (type_id);
+CREATE INDEX entreprises__documentstypes_documenttypeid_index ON public.entreprises__documents_types USING btree (document_type_id);
+CREATE INDEX entreprisesetablissements_entrepriseid_index ON public.entreprises_etablissements USING btree (entreprise_id);
+CREATE INDEX etapestypes__justificatifstypes_documenttypeid_index ON public.etapes_types__justificatifs_types USING btree (document_type_id);
+CREATE INDEX etapestypes__justificatifstypes_etapetypeid_index ON public.etapes_types__justificatifs_types USING btree (etape_type_id);
+CREATE INDEX index_geo_communes ON public.communes_postgis USING spgist (geometry);
+CREATE INDEX index_geo_forets ON public.forets_postgis USING spgist (geometry);
+CREATE INDEX index_geo_sdom_zones ON public.sdom_zones_postgis USING spgist (geometry);
+CREATE INDEX index_geo_secteurs_maritime ON public.secteurs_maritime_postgis USING spgist (geometry);
+CREATE INDEX journaux_titreid_index ON public.journaux USING btree (titre_id);
+CREATE INDEX logs_utilisateurid_index ON public.journaux USING btree (utilisateur_id);
+CREATE INDEX titres__titres_titrefromid_index ON public.titres__titres USING btree (titre_from_id);
+CREATE INDEX titres__titres_titretoid_index ON public.titres__titres USING btree (titre_to_id);
+CREATE INDEX titres_coordonnees_index ON public.titres USING gist (coordonnees);
+CREATE INDEX titres_etapes_administrations_locales_index ON public.titres_etapes USING btree (administrations_locales);
+CREATE INDEX titres_etapes_sdom_zones_index ON public.titres_etapes USING btree (sdom_zones);
+CREATE INDEX titres_etapes_secteurs_maritime_index ON public.titres_etapes USING btree (secteurs_maritime);
+CREATE INDEX titres_etapes_substances_index ON public.titres_etapes USING btree (substances);
+CREATE INDEX titres_references_index ON public.titres USING btree ("references");
+CREATE INDEX titres_slug_index ON public.titres USING btree (slug);
+CREATE INDEX titres_statutid_index ON public.titres USING btree (titre_statut_id);
+CREATE INDEX titres_typeid_index ON public.titres USING btree (type_id);
+CREATE INDEX titresactivites_slug_index ON public.titres_activites USING btree (slug);
+CREATE INDEX titresactivites_statutid_index ON public.titres_activites USING btree (activite_statut_id);
+CREATE INDEX titresactivites_titreid_index ON public.titres_activites USING btree (titre_id);
+CREATE INDEX titresactivites_typeid_index ON public.titres_activites USING btree (type_id);
+CREATE INDEX titresactivites_utilisateurid_index ON public.titres_activites USING btree (utilisateur_id);
+CREATE INDEX titresamodiataires_entrepriseid_index ON public.titres_amodiataires USING btree (entreprise_id);
+CREATE INDEX titresamodiataires_titreetapeid_index ON public.titres_amodiataires USING btree (titre_etape_id);
+CREATE INDEX titrescommunes_communeid_index ON public.titres_communes USING btree (commune_id);
+CREATE INDEX titrescommunes_titreetapeid_index ON public.titres_communes USING btree (titre_etape_id);
+CREATE INDEX titresdemarches_slug_index ON public.titres_demarches USING btree (slug);
+CREATE INDEX titresdemarches_statutid_index ON public.titres_demarches USING btree (statut_id);
+CREATE INDEX titresdemarches_titreid_index ON public.titres_demarches USING btree (titre_id);
+CREATE INDEX titresdemarches_typeid_index ON public.titres_demarches USING btree (type_id);
+CREATE INDEX titresdemarchesliens_enfanttitredemarcheid_index ON public.titres_demarches_liens USING btree (enfant_titre_demarche_id);
+CREATE INDEX titresdemarchesliens_parenttitredemarcheid_index ON public.titres_demarches_liens USING btree (parent_titre_demarche_id);
+CREATE INDEX titresetapes_slug_index ON public.titres_etapes USING btree (slug);
+CREATE INDEX titresetapes_statutid_index ON public.titres_etapes USING btree (statut_id);
+CREATE INDEX titresetapes_titredemarcheid_index ON public.titres_etapes USING btree (titre_demarche_id);
+CREATE INDEX titresetapes_typeid_index ON public.titres_etapes USING btree (type_id);
+CREATE INDEX titresetapesjustificatifs_documentid_index ON public.titres_etapes_justificatifs USING btree (document_id);
+CREATE INDEX titresetapesjustificatifs_titreetapeid_index ON public.titres_etapes_justificatifs USING btree (titre_etape_id);
+CREATE INDEX titresforets_foretid_index ON public.titres_forets USING btree (foret_id);
+CREATE INDEX titresforets_titreetapeid_index ON public.titres_forets USING btree (titre_etape_id);
+CREATE INDEX titrespoints_coordonnees_index ON public.titres_points USING gist (coordonnees);
+CREATE INDEX titrespoints_slug_index ON public.titres_points USING btree (slug);
+CREATE INDEX titrespoints_titreetapeid_index ON public.titres_points USING btree (titre_etape_id);
+CREATE INDEX titrespointsreferences_slug_index ON public.titres_points_references USING btree (slug);
+CREATE INDEX titrespointsreferences_titrepointid_index ON public.titres_points_references USING btree (titre_point_id);
+CREATE INDEX titrestitulaires_entrepriseid_index ON public.titres_titulaires USING btree (entreprise_id);
+CREATE INDEX titrestitulaires_titreetapeid_index ON public.titres_titulaires USING btree (titre_etape_id);
+CREATE INDEX titrestypes__activitestypes_activitetypeid_index ON public.activites_types__titres_types USING btree (activite_type_id);
+CREATE INDEX titrestypes__activitestypes_titretypeid_index ON public.activites_types__titres_types USING btree (titre_type_id);
+CREATE INDEX titrestypes__demarchestypes__etapestypes__justificatifst_demarc ON public.titres_types__demarches_types__etapes_types__justificatifs_t USING btree (demarche_type_id);
+CREATE INDEX titrestypes__demarchestypes__etapestypes__justificatifst_docume ON public.titres_types__demarches_types__etapes_types__justificatifs_t USING btree (document_type_id);
+CREATE INDEX titrestypes__demarchestypes__etapestypes__justificatifst_etapet ON public.titres_types__demarches_types__etapes_types__justificatifs_t USING btree (etape_type_id);
+CREATE INDEX titrestypes__demarchestypes__etapestypes__justificatifst_titret ON public.titres_types__demarches_types__etapes_types__justificatifs_t USING btree (titre_type_id);
+CREATE INDEX titrestypes__demarchestypes__etapestypes_demarchetypeid_index ON public.titres_types__demarches_types__etapes_types USING btree (demarche_type_id);
+CREATE INDEX titrestypes__demarchestypes__etapestypes_etapetypeid_index ON public.titres_types__demarches_types__etapes_types USING btree (etape_type_id);
+CREATE INDEX titrestypes__demarchestypes__etapestypes_titretypeid_index ON public.titres_types__demarches_types__etapes_types USING btree (titre_type_id);
+CREATE INDEX titrestypes_domaineid_index ON public.titres_types USING btree (domaine_id);
+CREATE INDEX titrestypes_typeid_index ON public.titres_types USING btree (type_id);
+CREATE INDEX utilisateurs__entreprises_entrepriseid_index ON public.utilisateurs__entreprises USING btree (entreprise_id);
+CREATE INDEX utilisateurs__entreprises_utilisateurid_index ON public.utilisateurs__entreprises USING btree (utilisateur_id);
+CREATE INDEX utilisateurs__titres_titreid_index ON public.utilisateurs__titres USING btree (titre_id);
+CREATE INDEX utilisateurs__titres_utilisateurid_index ON public.utilisateurs__titres USING btree (utilisateur_id);
+CREATE INDEX utilisateurs_administrationid_index ON public.utilisateurs USING btree (administration_id);
+CREATE INDEX utilisateurs_qgis_token_index ON public.utilisateurs USING btree (qgis_token);
+ALTER TABLE ONLY public.activites_types__documents_types
+    ADD CONSTRAINT activitestypes__documentstypes_activitetypeid_foreign FOREIGN KEY (activite_type_id) REFERENCES public.activites_types(id);
+ALTER TABLE ONLY public.activites_types__documents_types
+    ADD CONSTRAINT activitestypes__documentstypes_documenttypeid_foreign FOREIGN KEY (document_type_id) REFERENCES public.documents_types(id);
+ALTER TABLE ONLY public.activites_types__pays
+    ADD CONSTRAINT activitestypes__pays_activitetypeid_foreign FOREIGN KEY (activite_type_id) REFERENCES public.activites_types(id) ON DELETE CASCADE;
+ALTER TABLE ONLY public.administrations__activites_types__emails
+    ADD CONSTRAINT administrations__activitestypes__emails_activitetypeid_foreign FOREIGN KEY (activite_type_id) REFERENCES public.activites_types(id) ON DELETE CASCADE;
+ALTER TABLE ONLY public.administrations__activites_types__emails
+    ADD CONSTRAINT administrations__activitestypes__emails_administrationid_foreig FOREIGN KEY (administration_id) REFERENCES public.administrations(id) ON DELETE CASCADE;
+ALTER TABLE ONLY public.administrations__activites_types
+    ADD CONSTRAINT administrations__activitestypes_activitetypeid_foreign FOREIGN KEY (activite_type_id) REFERENCES public.activites_types(id) ON DELETE CASCADE;
+ALTER TABLE ONLY public.administrations__activites_types
+    ADD CONSTRAINT administrations__activitestypes_administrationid_foreign FOREIGN KEY (administration_id) REFERENCES public.administrations(id) ON DELETE CASCADE;
+ALTER TABLE ONLY public.documents
+    ADD CONSTRAINT documents_entrepriseid_foreign FOREIGN KEY (entreprise_id) REFERENCES public.entreprises(id) ON UPDATE CASCADE ON DELETE CASCADE;
+ALTER TABLE ONLY public.documents
+    ADD CONSTRAINT documents_titreactiviteid_foreign FOREIGN KEY (titre_activite_id) REFERENCES public.titres_activites(id) ON UPDATE CASCADE ON DELETE CASCADE;
+ALTER TABLE ONLY public.documents
+    ADD CONSTRAINT documents_titreetapeid_foreign FOREIGN KEY (titre_etape_id) REFERENCES public.titres_etapes(id) ON UPDATE CASCADE ON DELETE CASCADE;
+ALTER TABLE ONLY public.documents
+    ADD CONSTRAINT documents_typeid_foreign FOREIGN KEY (type_id) REFERENCES public.documents_types(id);
+ALTER TABLE ONLY public.entreprises__documents_types
+    ADD CONSTRAINT entreprises__documentstypes_documenttypeid_foreign FOREIGN KEY (document_type_id) REFERENCES public.documents_types(id);
+ALTER TABLE ONLY public.entreprises_etablissements
+    ADD CONSTRAINT entreprisesetablissements_entrepriseid_foreign FOREIGN KEY (entreprise_id) REFERENCES public.entreprises(id) ON DELETE CASCADE;
+ALTER TABLE ONLY public.etapes_types__justificatifs_types
+    ADD CONSTRAINT etapestypes__justificatifstypes_documenttypeid_foreign FOREIGN KEY (document_type_id) REFERENCES public.entreprises__documents_types(document_type_id);
+ALTER TABLE ONLY public.etapes_types__justificatifs_types
+    ADD CONSTRAINT etapestypes__justificatifstypes_etapetypeid_foreign FOREIGN KEY (etape_type_id) REFERENCES public.etapes_types(id) ON DELETE CASCADE;
+ALTER TABLE ONLY public.journaux
+    ADD CONSTRAINT journaux_titreid_foreign FOREIGN KEY (titre_id) REFERENCES public.titres(id) ON UPDATE CASCADE ON DELETE CASCADE;
+ALTER TABLE ONLY public.titres__titres
+    ADD CONSTRAINT titres__titres_titrefromid_foreign FOREIGN KEY (titre_from_id) REFERENCES public.titres(id);
+ALTER TABLE ONLY public.titres__titres
+    ADD CONSTRAINT titres__titres_titretoid_foreign FOREIGN KEY (titre_to_id) REFERENCES public.titres(id);
+ALTER TABLE ONLY public.titres
+    ADD CONSTRAINT titres_typeid_foreign FOREIGN KEY (type_id) REFERENCES public.titres_types(id);
+ALTER TABLE ONLY public.titres_activites
+    ADD CONSTRAINT titresactivites_titreid_foreign FOREIGN KEY (titre_id) REFERENCES public.titres(id) ON UPDATE CASCADE ON DELETE CASCADE;
+ALTER TABLE ONLY public.titres_activites
+    ADD CONSTRAINT titresactivites_typeid_foreign FOREIGN KEY (type_id) REFERENCES public.activites_types(id);
+ALTER TABLE ONLY public.titres_activites
+    ADD CONSTRAINT titresactivites_utilisateurid_foreign FOREIGN KEY (utilisateur_id) REFERENCES public.utilisateurs(id);
+ALTER TABLE ONLY public.titres_amodiataires
+    ADD CONSTRAINT titresamodiataires_entrepriseid_foreign FOREIGN KEY (entreprise_id) REFERENCES public.entreprises(id) ON UPDATE CASCADE ON DELETE CASCADE;
+ALTER TABLE ONLY public.titres_amodiataires
+    ADD CONSTRAINT titresamodiataires_titreetapeid_foreign FOREIGN KEY (titre_etape_id) REFERENCES public.titres_etapes(id) ON DELETE CASCADE;
+ALTER TABLE ONLY public.titres_communes
+    ADD CONSTRAINT titrescommunes_communeid_foreign FOREIGN KEY (commune_id) REFERENCES public.communes(id);
+ALTER TABLE ONLY public.titres_communes
+    ADD CONSTRAINT titrescommunes_titreetapeid_foreign FOREIGN KEY (titre_etape_id) REFERENCES public.titres_etapes(id) ON UPDATE CASCADE ON DELETE CASCADE;
+ALTER TABLE ONLY public.titres_demarches
+    ADD CONSTRAINT titresdemarches_titreid_foreign FOREIGN KEY (titre_id) REFERENCES public.titres(id) ON UPDATE CASCADE ON DELETE CASCADE;
+ALTER TABLE ONLY public.titres_demarches
+    ADD CONSTRAINT titresdemarches_typeid_foreign FOREIGN KEY (type_id) REFERENCES public.demarches_types(id);
+ALTER TABLE ONLY public.titres_demarches_liens
+    ADD CONSTRAINT titresdemarchesliens_enfanttitredemarcheid_foreign FOREIGN KEY (enfant_titre_demarche_id) REFERENCES public.titres_demarches(id) ON UPDATE CASCADE ON DELETE CASCADE;
+ALTER TABLE ONLY public.titres_demarches_liens
+    ADD CONSTRAINT titresdemarchesliens_parenttitredemarcheid_foreign FOREIGN KEY (parent_titre_demarche_id) REFERENCES public.titres_demarches(id) ON UPDATE CASCADE ON DELETE CASCADE;
+ALTER TABLE ONLY public.titres_etapes
+    ADD CONSTRAINT titresetapes_titredemarcheid_foreign FOREIGN KEY (titre_demarche_id) REFERENCES public.titres_demarches(id) ON UPDATE CASCADE ON DELETE CASCADE;
+ALTER TABLE ONLY public.titres_etapes
+    ADD CONSTRAINT titresetapes_typeid_foreign FOREIGN KEY (type_id) REFERENCES public.etapes_types(id);
+ALTER TABLE ONLY public.titres_etapes_justificatifs
+    ADD CONSTRAINT titresetapesjustificatifs_documentid_foreign FOREIGN KEY (document_id) REFERENCES public.documents(id) ON UPDATE CASCADE ON DELETE CASCADE;
+ALTER TABLE ONLY public.titres_etapes_justificatifs
+    ADD CONSTRAINT titresetapesjustificatifs_titreetapeid_foreign FOREIGN KEY (titre_etape_id) REFERENCES public.titres_etapes(id) ON UPDATE CASCADE ON DELETE CASCADE;
+ALTER TABLE ONLY public.titres_forets
+    ADD CONSTRAINT titresforets_foretid_foreign FOREIGN KEY (foret_id) REFERENCES public.forets(id);
+ALTER TABLE ONLY public.titres_forets
+    ADD CONSTRAINT titresforets_titreetapeid_foreign FOREIGN KEY (titre_etape_id) REFERENCES public.titres_etapes(id) ON UPDATE CASCADE ON DELETE CASCADE;
+ALTER TABLE ONLY public.titres_points
+    ADD CONSTRAINT titrespoints_titreetapeid_foreign FOREIGN KEY (titre_etape_id) REFERENCES public.titres_etapes(id) ON UPDATE CASCADE ON DELETE CASCADE;
+ALTER TABLE ONLY public.titres_points_references
+    ADD CONSTRAINT titrespointsreferences_titrepointid_foreign FOREIGN KEY (titre_point_id) REFERENCES public.titres_points(id) ON DELETE CASCADE;
+ALTER TABLE ONLY public.titres_titulaires
+    ADD CONSTRAINT titrestitulaires_entrepriseid_foreign FOREIGN KEY (entreprise_id) REFERENCES public.entreprises(id) ON UPDATE CASCADE ON DELETE CASCADE;
+ALTER TABLE ONLY public.titres_titulaires
+    ADD CONSTRAINT titrestitulaires_titreetapeid_foreign FOREIGN KEY (titre_etape_id) REFERENCES public.titres_etapes(id) ON UPDATE CASCADE ON DELETE CASCADE;
+ALTER TABLE ONLY public.activites_types__titres_types
+    ADD CONSTRAINT titrestypes__activitestypes_activitetypeid_foreign FOREIGN KEY (activite_type_id) REFERENCES public.activites_types(id);
+ALTER TABLE ONLY public.activites_types__titres_types
+    ADD CONSTRAINT titrestypes__activitestypes_titretypeid_foreign FOREIGN KEY (titre_type_id) REFERENCES public.titres_types(id);
+ALTER TABLE ONLY public.titres_types__demarches_types__etapes_types__justificatifs_t
+    ADD CONSTRAINT titrestypes__demarchestypes__etapestypes__justificatifst_docume FOREIGN KEY (document_type_id) REFERENCES public.documents_types(id);
+ALTER TABLE ONLY public.titres_types__demarches_types__etapes_types__justificatifs_t
+    ADD CONSTRAINT titrestypes__demarchestypes__etapestypes__justificatifst_titret FOREIGN KEY (titre_type_id, demarche_type_id, etape_type_id) REFERENCES public.titres_types__demarches_types__etapes_types(titre_type_id, demarche_type_id, etape_type_id);
+ALTER TABLE ONLY public.titres_types__demarches_types__etapes_types
+    ADD CONSTRAINT titrestypes__demarchestypes__etapestypes_demarchetypeid_foreign FOREIGN KEY (demarche_type_id) REFERENCES public.demarches_types(id);
+ALTER TABLE ONLY public.titres_types__demarches_types__etapes_types
+    ADD CONSTRAINT titrestypes__demarchestypes__etapestypes_etapetypeid_foreign FOREIGN KEY (etape_type_id) REFERENCES public.etapes_types(id);
+ALTER TABLE ONLY public.titres_types__demarches_types__etapes_types
+    ADD CONSTRAINT titrestypes__demarchestypes__etapestypes_titretypeid_foreign FOREIGN KEY (titre_type_id) REFERENCES public.titres_types(id);
+ALTER TABLE ONLY public.titres_types
+    ADD CONSTRAINT titrestypes_domaineid_foreign FOREIGN KEY (domaine_id) REFERENCES public.domaines(id);
+ALTER TABLE ONLY public.titres_types
+    ADD CONSTRAINT titrestypes_typeid_foreign FOREIGN KEY (type_id) REFERENCES public.titres_types_types(id);
+ALTER TABLE ONLY public.utilisateurs__entreprises
+    ADD CONSTRAINT utilisateurs__entreprises_entrepriseid_foreign FOREIGN KEY (entreprise_id) REFERENCES public.entreprises(id) ON DELETE CASCADE;
+ALTER TABLE ONLY public.utilisateurs__entreprises
+    ADD CONSTRAINT utilisateurs__entreprises_utilisateurid_foreign FOREIGN KEY (utilisateur_id) REFERENCES public.utilisateurs(id) ON DELETE CASCADE;
+ALTER TABLE ONLY public.utilisateurs__titres
+    ADD CONSTRAINT utilisateurs__titres_titreid_foreign FOREIGN KEY (titre_id) REFERENCES public.titres(id) ON DELETE CASCADE;
+ALTER TABLE ONLY public.utilisateurs__titres
+    ADD CONSTRAINT utilisateurs__titres_utilisateurid_foreign FOREIGN KEY (utilisateur_id) REFERENCES public.utilisateurs(id) ON DELETE CASCADE;
+ALTER TABLE ONLY public.utilisateurs
+    ADD CONSTRAINT utilisateurs_administrationid_foreign FOREIGN KEY (administration_id) REFERENCES public.administrations(id);
diff --git a/packages/api/tests/db-manager.ts b/packages/api/tests/db-manager.ts
index 5f2c4214ee99fe24ea80dba06ade9480bc9af42f..b4900b3cedf7f689dfe1fab71d5372b0cbdd010e 100644
--- a/packages/api/tests/db-manager.ts
+++ b/packages/api/tests/db-manager.ts
@@ -55,7 +55,7 @@ class DbManager {
         password: DbManager.getPgPassword(),
       },
       migrations: {
-        directory: [join(__dirname, '../src/knex/migrations-schema')],
+        directory: [join(__dirname, '../src/knex/migrations')],
         loadExtensions: ['.ts'],
         extension: 'ts',
       },