1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- #!/bin/sh
- set -e
- # Installer les dépendances d'abord
- echo "Installation des dépendances..."
- npm install
- # Définir le chemin de la base de données
- DB_PATH=${DB_PATH:-/app/data/framed.db}
- DB_DIR=$(dirname "$DB_PATH")
- # Créer le répertoire de la base de données s'il n'existe pas
- mkdir -p "$DB_DIR"
- # Vérifier si la base de données existe
- if [ ! -f "$DB_PATH" ]; then
- echo "Initialisation de la base de données à $DB_PATH..."
-
- # Créer le répertoire du script d'initialisation si nécessaire
- mkdir -p /app/scripts
-
- # Créer un script d'initialisation
- cat > /app/scripts/init-db.js << EOF
- const sqlite3 = require('sqlite3').verbose();
- const fs = require('fs');
- // Récupérer le schéma SQL
- const schema = fs.readFileSync('/app/schema.sql', 'utf8');
- // Créer la base de données
- const db = new sqlite3.Database('${DB_PATH}', (err) => {
- if (err) {
- console.error('Erreur lors de la création de la base de données:', err.message);
- process.exit(1);
- }
- console.log('Base de données créée.');
-
- // Activer les clés étrangères
- db.run('PRAGMA foreign_keys = ON');
-
- // Exécuter le schéma SQL
- db.exec(schema, (err) => {
- if (err) {
- console.error('Erreur lors de l\\'initialisation de la base de données:', err.message);
- process.exit(1);
- }
- console.log('Base de données initialisée avec succès.');
- db.close();
- });
- });
- EOF
-
- # Exécuter le script d'initialisation
- node /app/scripts/init-db.js
- else
- echo "Base de données existante détectée à $DB_PATH"
- fi
- # Mettre à jour le chemin de la DB dans le code si nécessaire
- if [ "$DB_PATH" != "./framed.db" ]; then
- echo "Mise à jour du chemin de la base de données dans le code..."
- sed -i "s|const db = new sqlite3.Database('./framed.db'|const db = new sqlite3.Database('$DB_PATH'|g" /app/server.js
- fi
- # Démarrer le serveur
- echo "Démarrage du serveur Framed Tracker..."
- if [ "$NODE_ENV" = "production" ]; then
- exec node server.js
- else
- exec nodemon --watch ./ server.js
- fi
|