Skip to content

Commit

Permalink
Import - Arrêtons le script après une erreur
Browse files Browse the repository at this point in the history
ref #893
  • Loading branch information
rik committed Nov 27, 2024
1 parent b9972c9 commit 1092f0f
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 54 deletions.
74 changes: 35 additions & 39 deletions daily_dump/index.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -21,42 +21,38 @@ await downloadDump(CONFIG.PG_PROD_CONFIG, DUMP_FILENAME, __dirname)
// You need to setup .pgpass in your home if you don't want to enter the db password on pg_restaure
// https://tableplus.com/blog/2019/09/how-to-use-pgpass-in-postgresql.html

try {
/// ////////////////////////////////////////
/// ///// PART 1 - Prepare the data ////////
/// ////////////////////////////////////////

// Step 0 (Optionnal)
await clearDev(CONFIG.PG_DEV_CONFIG)
// // // // // Step 1 - Charge un dump particulier venant de l'export de Andy sur notre storage

await loadDump(CONFIG.PG_DEV_CONFIG, DUMP_FILENAME)

// // // // // // Step 2 - Créer les tables intermédiaires d'aggregation depuis la donnée Sudocuh
await createSudocuProcessedTables(CONFIG.PG_DEV_CONFIG)
// // // // // // Replique un schema de test (Optionnal)
await createOriginalSchema(CONFIG.PG_DEV_CONFIG)
// // // // // // Step 3 - Désactive du trigger de changement de status sur nouveaux events
await handleTrigger(CONFIG.PG_PROD_CONFIG, 'disable')

// // /// /////////////////////////////////////////////////////////////
// // /// ///// PART 2 - Sudocuh to Docurba daily differential ////////
// // /// /////////////////////////////////////////////////////////////

// // // Step 4 - Migre les nouvelles données plan entrées dans Sudocuh dans Docurba
await sudocuhPlanToDocurba(CONFIG.PG_DEV_CONFIG, CONFIG.PG_PROD_CONFIG)
// // // // Step 5 - Migre les nouvelles données SCoT entrées dans Sudocuh dans Docurba
await sudocuhScotToDocurba(CONFIG.PG_DEV_CONFIG, CONFIG.PG_PROD_CONFIG)
// // // // Step 6 - Définition des status de procédures au niveau event
await setAllStatus(CONFIG.PG_PROD_CONFIG)
// // Step 6(Bis) - Définition des status de procédures en fonction des périmètres
await updatePerimeterStatus(CONFIG.PG_PROD_CONFIG)
// // Step 7 - Ralliement des communes fusionnées
// await updateComDPerimeter(CONFIG.PG_PROD_CONFIG)
//
await migrateDgd(CONFIG.PG_DEV_CONFIG, CONFIG.PG_PROD_CONFIG)
// // Step 8 - Réactivation du trigger de changement de status sur nouveaux events
await handleTrigger(CONFIG.PG_PROD_CONFIG, 'enable')
} catch (error) {
console.log(error)
}
/// ////////////////////////////////////////
/// ///// PART 1 - Prepare the data ////////
/// ////////////////////////////////////////

// Step 0 (Optionnal)
await clearDev(CONFIG.PG_DEV_CONFIG)
// // // // // Step 1 - Charge un dump particulier venant de l'export de Andy sur notre storage

await loadDump(CONFIG.PG_DEV_CONFIG, DUMP_FILENAME)

// // // // // // Step 2 - Créer les tables intermédiaires d'aggregation depuis la donnée Sudocuh
await createSudocuProcessedTables(CONFIG.PG_DEV_CONFIG)
// // // // // // Replique un schema de test (Optionnal)
await createOriginalSchema(CONFIG.PG_DEV_CONFIG)
// // // // // // Step 3 - Désactive du trigger de changement de status sur nouveaux events
await handleTrigger(CONFIG.PG_PROD_CONFIG, 'disable')

// // /// /////////////////////////////////////////////////////////////
// // /// ///// PART 2 - Sudocuh to Docurba daily differential ////////
// // /// /////////////////////////////////////////////////////////////

// // // Step 4 - Migre les nouvelles données plan entrées dans Sudocuh dans Docurba
await sudocuhPlanToDocurba(CONFIG.PG_DEV_CONFIG, CONFIG.PG_PROD_CONFIG)
// // // // Step 5 - Migre les nouvelles données SCoT entrées dans Sudocuh dans Docurba
await sudocuhScotToDocurba(CONFIG.PG_DEV_CONFIG, CONFIG.PG_PROD_CONFIG)
// // // // Step 6 - Définition des status de procédures au niveau event
await setAllStatus(CONFIG.PG_PROD_CONFIG)
// // Step 6(Bis) - Définition des status de procédures en fonction des périmètres
await updatePerimeterStatus(CONFIG.PG_PROD_CONFIG)
// // Step 7 - Ralliement des communes fusionnées
// await updateComDPerimeter(CONFIG.PG_PROD_CONFIG)
//
await migrateDgd(CONFIG.PG_DEV_CONFIG, CONFIG.PG_PROD_CONFIG)
// // Step 8 - Réactivation du trigger de changement de status sur nouveaux events
await handleTrigger(CONFIG.PG_PROD_CONFIG, 'enable')
29 changes: 14 additions & 15 deletions daily_dump/steps/sqlRunner.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,14 @@ async function clearDev (config) {

async function loadDump (config, dumpName) {
try {
console.log('[TODO] - Download the dump.')
console.log('Restoring latest Sudocuh dump...')
await execute(`pg_restore -h ${config.host} -d ${config.database} -U ${config.user} ./daily_dump/sudocuh_dumps/${dumpName}`)
console.log('Sudocuh dump Restored.')
} catch (error) {
// Actuellement, `pg_restore` générera une erreur même lors que le restore se passe
// suffisamment bien.
// Pour enlever le try/catch, il faudra comprendre comment invoquer `pg_restore`
// pour qu'il n'émette pas d'erreurs
// console.log(error)
}
}
Expand All @@ -42,22 +45,18 @@ async function createSudocuProcessedTables (config) {
// TODO: Rajouter DGD
// '9-InfosDgdProcedures.sql'
]
try {
const client = new Client(config)
await client.connect()
const client = new Client(config)
await client.connect()

for (const sqlFilename of SQLS) {
console.log(`Processing ${sqlFilename}...`)
const sql = fs.readFileSync(`./daily_dump/steps/sql/inter_tables/${sqlFilename}`)
.toString().replace(/(\r\n|\n|\r)/gm, ' ')
.replace(/\s+/g, ' ')
await client.query(sql)
}
await client.end()
console.log('Intermediate tables written.')
} catch (error) {
console.log(error)
for (const sqlFilename of SQLS) {
console.log(`Processing ${sqlFilename}...`)
const sql = fs.readFileSync(`./daily_dump/steps/sql/inter_tables/${sqlFilename}`)
.toString().replace(/(\r\n|\n|\r)/gm, ' ')
.replace(/\s+/g, ' ')
await client.query(sql)
}
await client.end()
console.log('Intermediate tables written.')
}

async function setAllStatus (config) {
Expand Down

0 comments on commit 1092f0f

Please sign in to comment.