From 049cca0ca4924653ff210384161f2c66dade3b44 Mon Sep 17 00:00:00 2001 From: Alessandro Battilani Date: Sun, 18 Apr 2021 10:16:02 +0200 Subject: [PATCH] improvement db export tool --- dump_company_config.sh | 102 ++++++++++++++++++++++++++++++----------- 1 file changed, 76 insertions(+), 26 deletions(-) diff --git a/dump_company_config.sh b/dump_company_config.sh index 079fdfd..ef9680b 100644 --- a/dump_company_config.sh +++ b/dump_company_config.sh @@ -11,38 +11,88 @@ if [[ $companyID == '' ]]; then echo "Company not found!" exit 1 fi -companyNS=$(echo $(mysql --login-path=asepath ase_lar -BN -e "select name_short from companies where id = $companyID") | tr '[:space:][:punct:]' '_' ) +companyNS=$(echo $(mysql --login-path=asepath ase_lar -BN -e "select name_short from companies where id = $companyID") | tr '[:space:][:punct:]' '_') #dump companies -mysqldump --login-path=asepath ase_lar --compact --no-create-info --skip-triggers companies --where="id = ${companyID}" > ${companyNS}companies.sql +mysqldump --login-path=asepath ase_lar --compact --no-create-info --skip-triggers companies --where="id = ${companyID}" >${companyNS}companies.sql #dump sites -mysqldump --login-path=asepath ase_lar --compact --no-create-info --skip-triggers --extended-insert=FALSE sites --where="company_id = ${companyID}" > ${companyNS}sites.sql +mysqldump --login-path=asepath ase_lar --compact --no-create-info --skip-triggers --extended-insert=FALSE sites --where="company_id = ${companyID}" >${companyNS}sites.sql sites=$(cut -d',' -f1 ${companyNS}sites.sql | cut -d'(' -f2 | tr '\n' ',' | sed 's/,$/\n/') +if [[ $sites == '' ]]; then + echo "No sites found!" + exit 1 +fi #dump units -mysqldump --login-path=asepath ase_lar --compact --no-create-info --skip-triggers --extended-insert=FALSE units --where="site_id in ( ${sites} )" > ${companyNS}units.sql +mysqldump --login-path=asepath ase_lar --compact --no-create-info --skip-triggers --extended-insert=FALSE units --where="site_id in ( ${sites} )" >${companyNS}units.sql units=$(cut -d',' -f1 ${companyNS}units.sql | cut -d'(' -f2 | tr '\n' ',' | sed 's/,$/\n/') - -#dump tools -mysqldump --login-path=asepath ase_lar --compact --no-create-info --skip-triggers --extended-insert=FALSE tools --where="unit_id in ( ${units} )" > ${companyNS}tools.sql -tools=$(cut -d',' -f1 ${companyNS}tools.sql | cut -d'(' -f2 | tr '\n' ',' | sed 's/,$/\n/') - -#dump nodes -mysqldump --login-path=asepath ase_lar --compact --no-create-info --skip-triggers --extended-insert=FALSE nodes --where="tool_id in ( ${tools} )" > ${companyNS}nodes.sql - -#dump calibrations -calibrations=$(cut -d',' -f4 ${companyNS}nodes.sql | tr '\n' ',' | sed 's/,$/\n/') -mysqldump --login-path=asepath ase_lar --compact --no-create-info --skip-triggers --extended-insert=FALSE calibrations --where="id in ( ${calibrations} )" > ${companyNS}calibrations.sql - -#dump installations -mysqldump --login-path=asepath ase_lar --compact --no-create-info --skip-triggers --extended-insert=FALSE installations --where="site_id in ( ${sites} )" > ${companyNS}installations.sql -installations=$(cut -d',' -f1 ${companyNS}installations.sql | cut -d'(' -f2 | tr '\n' ',' | sed 's/,$/\n/') - -#dump sections -if [[ $installations == '' ]]; then - echo "No installations found!" - rm ${companyNS}installations.sql +if [[ $units == '' ]]; then + echo "No units found!" + rm ${companyNS}units.sql else - mysqldump --login-path=asepath ase_lar --compact --no-create-info --skip-triggers --extended-insert=FALSE sections --where="installation_id in ( ${installations} )" > ${companyNS}sections.sql -fi \ No newline at end of file + #dump tools + mysqldump --login-path=asepath ase_lar --compact --no-create-info --skip-triggers --extended-insert=FALSE tools --where="unit_id in ( ${units} )" >${companyNS}tools.sql + tools=$(cut -d',' -f1 ${companyNS}tools.sql | cut -d'(' -f2 | tr '\n' ',' | sed 's/,$/\n/') + if [[ $tools == '' ]]; then + echo "No tools found!" + rm ${companyNS}tools.sql + else + #dump nodes + mysqldump --login-path=asepath ase_lar --compact --no-create-info --skip-triggers --extended-insert=FALSE nodes --where="tool_id in ( ${tools} )" >${companyNS}nodes.sql + nodes=$(cut -d',' -f1 ${companyNS}nodes.sql | cut -d'(' -f2 | tr '\n' ',' | sed 's/,$/\n/') + if [[ $nodes == '' ]]; then + echo "No nodes found!" + rm ${companyNS}nodes.sql + else + #dump calibrations + nodesC=$(cut -d',' -f4 ${companyNS}nodes.sql | tr '\n' ',' | sed 's/,$/\n/') + mysqldump --login-path=asepath ase_lar --compact --no-create-info --skip-triggers --extended-insert=FALSE calibrations --where="id in ( ${nodesC} )" >${companyNS}calibrations.sql + calibrations=$(cut -d',' -f1 ${companyNS}calibrations.sql | cut -d'(' -f2 | tr '\n' ',' | sed 's/,$/\n/') + if [[ $calibrations == '' ]]; then + echo "Warning: No calibrations found for nodes id $nodes!" + rm ${companyNS}calibrations.sql + fi + fi + fi + + #dump installations + mysqldump --login-path=asepath ase_lar --compact --no-create-info --skip-triggers --extended-insert=FALSE installations --where="site_id in ( ${sites} )" >${companyNS}installations.sql + installations=$(cut -d',' -f1 ${companyNS}installations.sql | cut -d'(' -f2 | tr '\n' ',' | sed 's/,$/\n/') + if [[ $installations == '' ]]; then + echo "No installations found!" + rm ${companyNS}installations.sql + else + #dump sections + mysqldump --login-path=asepath ase_lar --compact --no-create-info --skip-triggers --extended-insert=FALSE sections --where="installation_id in ( ${installations} )" >${companyNS}sections.sql + sections=$(cut -d',' -f1 ${companyNS}sections.sql | cut -d'(' -f2 | tr '\n' ',' | sed 's/,$/\n/') + if [[ $sections == '' ]]; then + echo "No sections found!" + rm ${companyNS}sections.sql + else + #dump heatmaps + mysqldump --login-path=asepath ase_lar --compact --no-create-info --skip-triggers --extended-insert=FALSE heatmaps --where="section_id in ( ${sections} )" >${companyNS}heatmaps.sql + heatmaps=$(cut -d',' -f1 ${companyNS}heatmaps.sql | cut -d'(' -f2 | tr '\n' ',' | sed 's/,$/\n/') + if [[ $heatmaps == '' ]]; then + echo "No heatmaps found!" + rm ${companyNS}heatmaps.sql + fi + fi + fi + + #dump barriers + mysqldump --login-path=asepath ase_lar --compact --no-create-info --skip-triggers --extended-insert=FALSE barriers --where="unit_id in ( ${units} )" >${companyNS}barriers.sql + barriers=$(cut -d',' -f1 ${companyNS}barriers.sql | cut -d'(' -f2 | tr '\n' ',' | sed 's/,$/\n/') + if [[ $barriers == '' ]]; then + echo "No barriers found!" + rm ${companyNS}barriers.sql + fi +fi + +#dump ctrltools +mysqldump --login-path=asepath ase_lar --compact --no-create-info --skip-triggers --extended-insert=FALSE ctrltools --where="site_id in ( ${sites} )" >${companyNS}ctrltools.sql +ctrltools=$(cut -d',' -f1 ${companyNS}ctrltools.sql | cut -d'(' -f2 | tr '\n' ',' | sed 's/,$/\n/') +if [[ $ctrltools == '' ]]; then + echo "No ctrltools found!" + rm ${companyNS}ctrltools.sql +fi