- 3 nouvelles tables DB : catalogueFormation, planFormation, planFormationItem - Backend tRPC : routers catalogue et planFormation avec CRUD complet, import CSV/Excel, suggestion automatique - Frontend : pages PlanFormation, PlanFormationDetail, CatalogueFormation + menu sidebar - Déployé sur le serveur de recette (TEST) : https://formations.recette.santinova-soft.org - Portail applicatif mis à jour avec la carte de l'application
38 lines
1.0 KiB
JavaScript
38 lines
1.0 KiB
JavaScript
#!/usr/bin/env node
|
|
/**
|
|
* Génère le SQL CREATE TABLE pour toutes les tables du schéma Drizzle.
|
|
* Utilise drizzle-kit pour générer le SQL.
|
|
*/
|
|
import { execSync } from 'child_process';
|
|
import fs from 'fs';
|
|
import path from 'path';
|
|
import { fileURLToPath } from 'url';
|
|
|
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
|
|
// Lire le fichier de schéma
|
|
const schemaPath = path.join(__dirname, 'drizzle/schema.ts');
|
|
const schemaContent = fs.readFileSync(schemaPath, 'utf-8');
|
|
|
|
console.log('Schéma lu, génération du SQL...');
|
|
|
|
// Utiliser tsx pour transpiler et exécuter le schéma
|
|
// puis générer le SQL via drizzle-kit
|
|
try {
|
|
const result = execSync('pnpm drizzle-kit generate --name=full_schema_recette', {
|
|
cwd: __dirname,
|
|
encoding: 'utf-8',
|
|
timeout: 30000
|
|
});
|
|
console.log(result);
|
|
} catch (e) {
|
|
console.error(e.message);
|
|
}
|
|
|
|
// Lister les fichiers SQL générés
|
|
const sqlFiles = fs.readdirSync(path.join(__dirname, 'drizzle'))
|
|
.filter(f => f.endsWith('.sql'))
|
|
.sort();
|
|
|
|
console.log('SQL files:', sqlFiles);
|