mirror of
https://github.com/R0m1k3/Regisflow.git
synced 2026-10-11 17:29:48 +02:00
Automate database table creation during initial application deployment
Updates docker-compose to build images and adds Drizzle ORM push command to docker-entrypoint-simple.sh for automatic table creation. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 91318273-c764-4fd4-be04-bdc12c38af32 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/0715008c-7244-40f4-befc-26c014852236/142044c4-d937-4abb-ae50-83d9764cfb4d.jpg
This commit is contained in:
1 parent
e761448ae9
commit
4c89a7e2e5
5 files changed
+208
-12
No files matched your search
@@ -43,15 +43,14 @@ ALLOWED_DOMAIN=votre-domaine.com
|
||||
## 3. Déploiement
|
||||
|
||||
```bash
|
||||
# Télécharger les images
|
||||
docker-compose pull
|
||||
|
||||
# Démarrer les services
|
||||
docker-compose up -d
|
||||
# Construire et démarrer les services
|
||||
docker-compose up -d --build
|
||||
|
||||
# Vérifier le statut
|
||||
docker-compose ps
|
||||
docker-compose logs -f regisflow
|
||||
|
||||
# Les tables sont créées automatiquement au premier démarrage
|
||||
```
|
||||
|
||||
## 4. Vérification
|
||||
|
||||
@@ -0,0 +1,95 @@
|
||||
at async DatabaseStorage.getAllUsers (file:///app/dist/index.js:187:12)
|
||||
at async DatabaseStorage.initializeDefaults (file:///app/dist/index.js:258:27)
|
||||
at async registerRoutes (file:///app/dist/index.js:510:22)
|
||||
at async file:///app/dist/index.js:1071:18 {
|
||||
length: 105,
|
||||
severity: 'ERROR',
|
||||
code: '42P01',
|
||||
detail: undefined,
|
||||
hint: undefined,
|
||||
position: '139',
|
||||
internalPosition: undefined,
|
||||
internalQuery: undefined,
|
||||
where: undefined,
|
||||
schema: undefined,
|
||||
table: undefined,
|
||||
column: undefined,
|
||||
dataType: undefined,
|
||||
constraint: undefined,
|
||||
file: 'parse_relation.c',
|
||||
line: '1392',
|
||||
routine: 'parserOpenTable'
|
||||
}
|
||||
Node.js v18.20.8
|
||||
🚀 Démarrage de RegisFlow (mode simplifié)...
|
||||
📡 Attente de la base de données...
|
||||
✅ PostgreSQL prêt!
|
||||
✅ Base de données configurée
|
||||
🎯 Démarrage de RegisFlow...
|
||||
✅ Node.js 18 compatibility fix applied
|
||||
/app/node_modules/pg-pool/index.js:45
|
||||
Error.captureStackTrace(err)
|
||||
^
|
||||
error: relation "users" does not exist
|
||||
at /app/node_modules/pg-pool/index.js:45:11
|
||||
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
|
||||
at async file:///app/node_modules/drizzle-orm/node-postgres/session.js:83:22
|
||||
at async DatabaseStorage.getAllUsers (file:///app/dist/index.js:187:12)
|
||||
at async DatabaseStorage.initializeDefaults (file:///app/dist/index.js:258:27)
|
||||
at async registerRoutes (file:///app/dist/index.js:510:22)
|
||||
at async file:///app/dist/index.js:1071:18 {
|
||||
length: 105,
|
||||
severity: 'ERROR',
|
||||
code: '42P01',
|
||||
detail: undefined,
|
||||
hint: undefined,
|
||||
position: '139',
|
||||
internalPosition: undefined,
|
||||
internalQuery: undefined,
|
||||
where: undefined,
|
||||
schema: undefined,
|
||||
table: undefined,
|
||||
column: undefined,
|
||||
dataType: undefined,
|
||||
constraint: undefined,
|
||||
file: 'parse_relation.c',
|
||||
line: '1392',
|
||||
routine: 'parserOpenTable'
|
||||
}
|
||||
Node.js v18.20.8
|
||||
🚀 Démarrage de RegisFlow (mode simplifié)...
|
||||
📡 Attente de la base de données...
|
||||
✅ PostgreSQL prêt!
|
||||
✅ Base de données configurée
|
||||
🎯 Démarrage de RegisFlow...
|
||||
✅ Node.js 18 compatibility fix applied
|
||||
/app/node_modules/pg-pool/index.js:45
|
||||
Error.captureStackTrace(err)
|
||||
^
|
||||
error: relation "users" does not exist
|
||||
at /app/node_modules/pg-pool/index.js:45:11
|
||||
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
|
||||
at async file:///app/node_modules/drizzle-orm/node-postgres/session.js:83:22
|
||||
at async DatabaseStorage.getAllUsers (file:///app/dist/index.js:187:12)
|
||||
at async DatabaseStorage.initializeDefaults (file:///app/dist/index.js:258:27)
|
||||
at async registerRoutes (file:///app/dist/index.js:510:22)
|
||||
at async file:///app/dist/index.js:1071:18 {
|
||||
length: 105,
|
||||
severity: 'ERROR',
|
||||
code: '42P01',
|
||||
detail: undefined,
|
||||
hint: undefined,
|
||||
position: '139',
|
||||
internalPosition: undefined,
|
||||
internalQuery: undefined,
|
||||
where: undefined,
|
||||
schema: undefined,
|
||||
table: undefined,
|
||||
column: undefined,
|
||||
dataType: undefined,
|
||||
constraint: undefined,
|
||||
file: 'parse_relation.c',
|
||||
line: '1392',
|
||||
routine: 'parserOpenTable'
|
||||
}
|
||||
Node.js v18.20.8
|
||||
@@ -25,7 +25,15 @@ fi
|
||||
# Créer les répertoires nécessaires
|
||||
mkdir -p /app/backups /app/logs
|
||||
|
||||
# Initialiser la base de données (les tables seront créées automatiquement par l'application)
|
||||
# Créer les tables de la base de données
|
||||
echo "📦 Création des tables de la base de données..."
|
||||
if npx drizzle-kit push --config=./drizzle.config.ts; then
|
||||
echo "✅ Tables créées avec succès"
|
||||
else
|
||||
echo "❌ Erreur lors de la création des tables"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "✅ Base de données configurée"
|
||||
|
||||
# Démarrer l'application avec le script de polyfill Node.js 18
|
||||
|
||||
Generated
+99
-5
@@ -101,7 +101,7 @@
|
||||
"@types/ws": "^8.5.13",
|
||||
"@vitejs/plugin-react": "^4.3.2",
|
||||
"autoprefixer": "^10.4.20",
|
||||
"drizzle-kit": "^0.30.4",
|
||||
"drizzle-kit": "^0.30.6",
|
||||
"esbuild": "^0.25.0",
|
||||
"postcss": "^8.4.47",
|
||||
"tailwindcss": "^3.4.17",
|
||||
@@ -1518,6 +1518,13 @@
|
||||
"node": ">= 8"
|
||||
}
|
||||
},
|
||||
"node_modules/@petamoriken/float16": {
|
||||
"version": "3.9.2",
|
||||
"resolved": "https://registry.npmjs.org/@petamoriken/float16/-/float16-3.9.2.tgz",
|
||||
"integrity": "sha512-VgffxawQde93xKxT3qap3OH+meZf7VaSB5Sqd4Rqc+FP5alWbpOyan/7tRbOAvynjpG3GpdtAuGU/NdhQpmrog==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@pkgjs/parseargs": {
|
||||
"version": "0.11.0",
|
||||
"resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
|
||||
@@ -4583,16 +4590,17 @@
|
||||
}
|
||||
},
|
||||
"node_modules/drizzle-kit": {
|
||||
"version": "0.30.4",
|
||||
"resolved": "https://registry.npmjs.org/drizzle-kit/-/drizzle-kit-0.30.4.tgz",
|
||||
"integrity": "sha512-B2oJN5UkvwwNHscPWXDG5KqAixu7AUzZ3qbe++KU9SsQ+cZWR4DXEPYcvWplyFAno0dhRJECNEhNxiDmFaPGyQ==",
|
||||
"version": "0.30.6",
|
||||
"resolved": "https://registry.npmjs.org/drizzle-kit/-/drizzle-kit-0.30.6.tgz",
|
||||
"integrity": "sha512-U4wWit0fyZuGuP7iNmRleQyK2V8wCuv57vf5l3MnG4z4fzNTjY/U13M8owyQ5RavqvqxBifWORaR3wIUzlN64g==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@drizzle-team/brocli": "^0.10.2",
|
||||
"@esbuild-kit/esm-loader": "^2.5.5",
|
||||
"esbuild": "^0.19.7",
|
||||
"esbuild-register": "^3.5.0"
|
||||
"esbuild-register": "^3.5.0",
|
||||
"gel": "^2.0.0"
|
||||
},
|
||||
"bin": {
|
||||
"drizzle-kit": "bin.cjs"
|
||||
@@ -5235,6 +5243,19 @@
|
||||
"node": ">=10.13.0"
|
||||
}
|
||||
},
|
||||
"node_modules/env-paths": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/env-paths/-/env-paths-3.0.0.tgz",
|
||||
"integrity": "sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/es-define-property": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
|
||||
@@ -5731,6 +5752,66 @@
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/gel": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/gel/-/gel-2.1.1.tgz",
|
||||
"integrity": "sha512-Newg9X7mRYskoBjSw70l1YnJ/ZGbq64VPyR821H5WVkTGpHG2O0mQILxCeUhxdYERLFY9B4tUyKLyf3uMTjtKw==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@petamoriken/float16": "^3.8.7",
|
||||
"debug": "^4.3.4",
|
||||
"env-paths": "^3.0.0",
|
||||
"semver": "^7.6.2",
|
||||
"shell-quote": "^1.8.1",
|
||||
"which": "^4.0.0"
|
||||
},
|
||||
"bin": {
|
||||
"gel": "dist/cli.mjs"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/gel/node_modules/isexe": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz",
|
||||
"integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==",
|
||||
"dev": true,
|
||||
"license": "ISC",
|
||||
"engines": {
|
||||
"node": ">=16"
|
||||
}
|
||||
},
|
||||
"node_modules/gel/node_modules/semver": {
|
||||
"version": "7.7.2",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
|
||||
"integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
|
||||
"dev": true,
|
||||
"license": "ISC",
|
||||
"bin": {
|
||||
"semver": "bin/semver.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/gel/node_modules/which": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz",
|
||||
"integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==",
|
||||
"dev": true,
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"isexe": "^3.1.1"
|
||||
},
|
||||
"bin": {
|
||||
"node-which": "bin/which.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^16.13.0 || >=18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/gensync": {
|
||||
"version": "1.0.0-beta.2",
|
||||
"resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
|
||||
@@ -7888,6 +7969,19 @@
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/shell-quote": {
|
||||
"version": "1.8.3",
|
||||
"resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz",
|
||||
"integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/side-channel": {
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
|
||||
|
||||
+1
-1
@@ -103,7 +103,7 @@
|
||||
"@types/ws": "^8.5.13",
|
||||
"@vitejs/plugin-react": "^4.3.2",
|
||||
"autoprefixer": "^10.4.20",
|
||||
"drizzle-kit": "^0.30.4",
|
||||
"drizzle-kit": "^0.30.6",
|
||||
"esbuild": "^0.25.0",
|
||||
"postcss": "^8.4.47",
|
||||
"tailwindcss": "^3.4.17",
|
||||
|
||||
Reference in new issue
Block a user