From f72bbffd79ef36763159f469d50c20abe50f39a8 Mon Sep 17 00:00:00 2001 From: Karl Levik Date: Thu, 25 Jan 2024 16:37:00 +0000 Subject: [PATCH] Replace all instances of mysql clients with mariadb clients, fix build (#222) --- README.md | 38 +++--- bin/backup.sh | 2 +- bin/db_procs_to_rst.sh | 2 +- bin/db_tables_to_rst.sh | 2 +- bin/export_session.sh | 206 +++++++++++++++---------------- bin/forget_all_labs.sh | 10 +- bin/forget_all_persons.sh | 6 +- bin/forget_lab.sh | 2 +- bin/forget_pdb.sh | 2 +- bin/forget_person.sh | 4 +- bin/forget_protein.sh | 2 +- bin/forget_sample.sh | 2 +- bin/forget_shipping.sh | 2 +- bin/forget_subsample.sh | 2 +- bin/forget_unused_shipments.sh | 14 +-- bin/missed_updates.sh | 2 +- build.sh | 36 +++--- docs/index.md | 33 ----- release.sh | 2 +- schemas/ispyb_analytics/build.sh | 17 ++- 20 files changed, 176 insertions(+), 210 deletions(-) delete mode 100644 docs/index.md diff --git a/README.md b/README.md index 5490914d..4363e16d 100644 --- a/README.md +++ b/README.md @@ -26,11 +26,11 @@ Alternatively, do it manually: Run this on the command-line to create a database and import the schema stored in the SQL files: ```bash -mysql -e "CREATE DATABASE ispyb" -mysql ispyb < schemas/ispyb/tables.sql -mysql ispyb < schemas/ispyb/lookups.sql -mysql ispyb < schemas/ispyb/data.sql -mysql ispyb < schemas/ispyb/routines.sql +mariadb -e "CREATE DATABASE ispyb" +mariadb ispyb < schemas/ispyb/tables.sql +mariadb ispyb < schemas/ispyb/lookups.sql +mariadb ispyb < schemas/ispyb/data.sql +mariadb ispyb < schemas/ispyb/routines.sql ``` Note that the `data.sql` file contains test data, so is only useful in a development environment. @@ -40,15 +40,15 @@ Note that the `data.sql` file contains test data, so is only useful in a develop Then apply the grants: ```bash -mysql ispyb < grants/ispyb_acquisition.sql -mysql ispyb < grants/ispyb_import.sql -mysql ispyb < grants/ispyb_processing.sql -mysql ispyb < grants/ispyb_ro_nopii.sql -mysql ispyb < grants/ispyb_scripts_processing.sql -mysql ispyb < grants/ispyb_ssx_writer.sql -mysql ispyb < grants/ispyb_touchscreen.sql -mysql ispyb < grants/ispyb_web.sql -mysql ispyb < grants/ispyb_web_verify_tests.sql +mariadb ispyb < grants/ispyb_acquisition.sql +mariadb ispyb < grants/ispyb_import.sql +mariadb ispyb < grants/ispyb_processing.sql +mariadb ispyb < grants/ispyb_ro_nopii.sql +mariadb ispyb < grants/ispyb_scripts_processing.sql +mariadb ispyb < grants/ispyb_ssx_writer.sql +mariadb ispyb < grants/ispyb_touchscreen.sql +mariadb ispyb < grants/ispyb_web.sql +mariadb ispyb < grants/ispyb_web_verify_tests.sql ``` Note that the grants files are based on roles, so to actually use these grants, you also need to create database users and grant the roles to them. This is described in the header section of the grant files. @@ -78,17 +78,17 @@ In order to update a production database, please follow this procedure: 1. For all *.sql files in `schemas/ispyb/updates` that have not already been run, read any comments inside the files to decide if/when you should run them. Run a file e.g. like this: ```bash -mysql ispyb < schemas/ispyb/updates/2019_03_29_BLSession_archived.sql +mariadb ispyb < schemas/ispyb/updates/2019_03_29_BLSession_archived.sql ``` 2. If `schemas/ispyb/routines.sql` has been updated since you installed it, you can simply re-run it. E.g.: ```bash -mysql ispyb < schemas/ispyb/routines.sql +mariadb ispyb < schemas/ispyb/routines.sql ``` 3. If you ran the `routines.sql`, then re-apply the grants for the routines. E.g.: ```bash -mysql ispyb < grants/ispyb_acquisition.sql -mysql ispyb < grants/ispyb_processing.sql -mysql ispyb < grants/ispyb_web.sql +mariadb ispyb < grants/ispyb_acquisition.sql +mariadb ispyb < grants/ispyb_processing.sql +mariadb ispyb < grants/ispyb_web.sql ``` ## Useful scripts diff --git a/bin/backup.sh b/bin/backup.sh index 5d6cb4b7..dd740d90 100755 --- a/bin/backup.sh +++ b/bin/backup.sh @@ -13,7 +13,7 @@ then fi # Note: --defaults-file must be given as first option -DUMP_W_OPTS="mysqldump --defaults-file=../.my.cnf --add-drop-table --create-options --disable-keys --extended-insert --skip-add-locks --quick --set-charset --single-transaction --max_allowed_packet=1G --default-character-set=utf8 --skip-comments --skip-dump-date" +DUMP_W_OPTS="mariadb-dump --defaults-file=../.my.cnf --add-drop-table --create-options --disable-keys --extended-insert --skip-add-locks --quick --set-charset --single-transaction --max_allowed_packet=1G --default-character-set=utf8 --skip-comments --skip-dump-date" ${DUMP_W_OPTS} --skip-triggers --no-data "${DB}" | sed -e 's/DEFINER=[^*]*\*/SQL SECURITY INVOKER \*/' | sed 's/ AUTO_INCREMENT=[0-9]*\b//g' > ${OUT_DIR}/tables.sql diff --git a/bin/db_procs_to_rst.sh b/bin/db_procs_to_rst.sh index 3a6f066f..c499dbc9 100755 --- a/bin/db_procs_to_rst.sh +++ b/bin/db_procs_to_rst.sh @@ -5,7 +5,7 @@ db=$1 file=$(mktemp /tmp/tsv.XXXXXX) # Execute the sql to generate the csv outfile -mysql --defaults-file=../.my.cnf --skip-column-names --batch --raw -D $db < sql/db_procs_to_tsv.sql > ${file} +mariadb --defaults-file=../.my.cnf --skip-column-names --batch --raw -D $db < sql/db_procs_to_tsv.sql > ${file} # Construct rst file with csv table echo ".. csv-table:: Procedure signatures with comments" diff --git a/bin/db_tables_to_rst.sh b/bin/db_tables_to_rst.sh index 4165874d..39a3564e 100755 --- a/bin/db_tables_to_rst.sh +++ b/bin/db_tables_to_rst.sh @@ -4,7 +4,7 @@ db=$1 file=$(mktemp /tmp/tsv.XXXXXX) -mysql --defaults-file=../.my.cnf -D $db --skip-column-names --batch --raw < sql/db_tables_to_tsv.sql > ${file} +mariadb --defaults-file=../.my.cnf -D $db --skip-column-names --batch --raw < sql/db_tables_to_tsv.sql > ${file} sed -i 's/\t/,/g' ${file} echo ".. csv-table:: Tables, columns and comments" diff --git a/bin/export_session.sh b/bin/export_session.sh index 1eb5f46a..5fcdc8d4 100755 --- a/bin/export_session.sh +++ b/bin/export_session.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash # Usage: -# export_session.sh [-t|-s|-v] +# export_session.sh [-t|-s|-v] # -t: Process tomography tables # -s: Process single particle analysis tables # -v: Verbose output (prints all commands ran) @@ -48,13 +48,13 @@ PROPOSAL_FILE=proposal_data.sql SESSION_DIR=${OUT_DIR}/session SESSION_FILE=session_data.sql -PID=`mysql --defaults-extra-file=${MYCNF} -s -D ${DB} -e "SELECT proposalId FROM Proposal WHERE concat(proposalCode, proposalNumber)='${PROPOSAL}';"` +PID=`mariadb --defaults-extra-file=${MYCNF} -s -D ${DB} -e "SELECT proposalId FROM Proposal WHERE concat(proposalCode, proposalNumber)='${PROPOSAL}';"` -SID=`mysql --defaults-extra-file=${MYCNF} -s -D ${DB} -e "SELECT sessionId FROM BLSession WHERE proposalId='${PID}' AND visit_number=${SESSNUM};"` +SID=`mariadb --defaults-extra-file=${MYCNF} -s -D ${DB} -e "SELECT sessionId FROM BLSession WHERE proposalId='${PID}' AND visit_number=${SESSNUM};"` -PERSID=`mysql --defaults-extra-file=${MYCNF} -s -D ${DB} -e "SELECT personId FROM Proposal WHERE proposalId=${PID};"` +PERSID=`mariadb --defaults-extra-file=${MYCNF} -s -D ${DB} -e "SELECT personId FROM Proposal WHERE proposalId=${PID};"` -LABID=`mysql --defaults-extra-file=${MYCNF} -s -D ${DB} -e "SELECT laboratoryId FROM Person WHERE personId=${PERSID};"` +LABID=`mariadb --defaults-extra-file=${MYCNF} -s -D ${DB} -e "SELECT laboratoryId FROM Person WHERE personId=${PERSID};"` if [ -d "${OUT_DIR}" ] then @@ -69,225 +69,225 @@ OPTIONS="--defaults-file=${MYCNF} --add-drop-table --create-options --disable-ke source lookup_tables.sh -mysqldump ${OPTIONS} ${LOOKUP_TABLES_STRING} v_run BeamLineSetup | grep 'INSERT INTO' > ${OUT_DIR}/${GLOBALS_FILE} +mariadb-dump ${OPTIONS} ${LOOKUP_TABLES_STRING} v_run BeamLineSetup | grep 'INSERT INTO' > ${OUT_DIR}/${GLOBALS_FILE} # Proposal level data -mysqldump ${OPTIONS} --where="diffractionPlanId IN (SELECT dataCollectionPlanId FROM ScanParametersModel)" DiffractionPlan > ${PROPOSAL_DIR}/DiffractionPlan0.sql +mariadb-dump ${OPTIONS} --where="diffractionPlanId IN (SELECT dataCollectionPlanId FROM ScanParametersModel)" DiffractionPlan > ${PROPOSAL_DIR}/DiffractionPlan0.sql -mysqldump ${OPTIONS} ScanParametersModel > ${PROPOSAL_DIR}/ScanParametersModel.sql +mariadb-dump ${OPTIONS} ScanParametersModel > ${PROPOSAL_DIR}/ScanParametersModel.sql -mysqldump ${OPTIONS} --where="laboratoryId=${LABID} OR laboratoryId IN (SELECT p.laboratoryId FROM Person p INNER JOIN LabContact lc USING(personId) WHERE lc.proposalId=${PID}) OR laboratoryId IN (SELECT laboratoryId FROM Person p INNER JOIN Session_has_Person shp USING(personId) WHERE shp.sessionId=${SID}) OR laboratoryId IN (SELECT laboratoryId FROM Person p INNER JOIN ProposalHasPerson php USING(personId) WHERE php.proposalId=${PID}) OR laboratoryId IN (SELECT p.laboratoryId FROM Person p INNER JOIN Container c ON c.ownerId=p.personId WHERE c.sessionId=${SID}) OR laboratoryId IN (SELECT p.laboratoryId FROM Person p INNER JOIN Container c ON c.ownerId=p.personId INNER JOIN Dewar d USING(dewarId) INNER JOIN Shipping s USING(shippingId) WHERE s.proposalId=${PID}) OR laboratoryId IN (SELECT pe.laboratoryId FROM Person pe INNER JOIN Container c ON c.ownerId=pe.personId INNER JOIN BLSample bls USING(containerId) INNER JOIN Crystal USING(crystalId) INNER JOIN Protein p USING(proteinId) WHERE p.proposalId=${PID}) OR laboratoryId IN (SELECT pe.laboratoryId FROM Person pe INNER JOIN Shipping s ON pe.personId=s.deliveryAgent_flightCodePersonId WHERE s.proposalId=${PID} UNION SELECT pe.laboratoryId FROM Person pe JOIN LabContact lc USING(personId) WHERE lc.labContactId IN (SELECT sendingLabContactId FROM Shipping WHERE proposalId=${PID} UNION SELECT returnLabContactId FROM Shipping WHERE proposalId=${PID}))" Laboratory > ${PROPOSAL_DIR}/Laboratory.sql +mariadb-dump ${OPTIONS} --where="laboratoryId=${LABID} OR laboratoryId IN (SELECT p.laboratoryId FROM Person p INNER JOIN LabContact lc USING(personId) WHERE lc.proposalId=${PID}) OR laboratoryId IN (SELECT laboratoryId FROM Person p INNER JOIN Session_has_Person shp USING(personId) WHERE shp.sessionId=${SID}) OR laboratoryId IN (SELECT laboratoryId FROM Person p INNER JOIN ProposalHasPerson php USING(personId) WHERE php.proposalId=${PID}) OR laboratoryId IN (SELECT p.laboratoryId FROM Person p INNER JOIN Container c ON c.ownerId=p.personId WHERE c.sessionId=${SID}) OR laboratoryId IN (SELECT p.laboratoryId FROM Person p INNER JOIN Container c ON c.ownerId=p.personId INNER JOIN Dewar d USING(dewarId) INNER JOIN Shipping s USING(shippingId) WHERE s.proposalId=${PID}) OR laboratoryId IN (SELECT pe.laboratoryId FROM Person pe INNER JOIN Container c ON c.ownerId=pe.personId INNER JOIN BLSample bls USING(containerId) INNER JOIN Crystal USING(crystalId) INNER JOIN Protein p USING(proteinId) WHERE p.proposalId=${PID}) OR laboratoryId IN (SELECT pe.laboratoryId FROM Person pe INNER JOIN Shipping s ON pe.personId=s.deliveryAgent_flightCodePersonId WHERE s.proposalId=${PID} UNION SELECT pe.laboratoryId FROM Person pe JOIN LabContact lc USING(personId) WHERE lc.labContactId IN (SELECT sendingLabContactId FROM Shipping WHERE proposalId=${PID} UNION SELECT returnLabContactId FROM Shipping WHERE proposalId=${PID}))" Laboratory > ${PROPOSAL_DIR}/Laboratory.sql -mysqldump ${OPTIONS} --where="personId=${PERSID} OR personId IN (SELECT personId FROM LabContact WHERE proposalId=${PID}) OR personId IN (SELECT personId FROM Session_has_Person WHERE sessionId=${SID}) OR personId IN (SELECT personId FROM ProposalHasPerson WHERE proposalId=${PID}) OR personId IN (SELECT ownerId FROM Container WHERE sessionId=${SID}) OR personId IN (SELECT c.ownerId FROM Container c INNER JOIN Dewar d USING(dewarId) INNER JOIN Shipping s USING(shippingId) WHERE s.proposalId=${PID}) OR personId IN (SELECT c.ownerId FROM Container c INNER JOIN BLSample bls USING(containerId) INNER JOIN Crystal USING(crystalId) INNER JOIN Protein p USING(proteinId) WHERE p.proposalId=${PID}) OR personId IN (SELECT s.deliveryAgent_flightCodePersonId FROM Shipping s WHERE s.proposalId=${PID} UNION SELECT personId FROM LabContact WHERE labContactId IN (SELECT sendingLabContactId FROM Shipping WHERE proposalId=${PID} UNION SELECT returnLabContactId FROM Shipping WHERE proposalId=${PID}))" Person > ${PROPOSAL_DIR}/Person.sql +mariadb-dump ${OPTIONS} --where="personId=${PERSID} OR personId IN (SELECT personId FROM LabContact WHERE proposalId=${PID}) OR personId IN (SELECT personId FROM Session_has_Person WHERE sessionId=${SID}) OR personId IN (SELECT personId FROM ProposalHasPerson WHERE proposalId=${PID}) OR personId IN (SELECT ownerId FROM Container WHERE sessionId=${SID}) OR personId IN (SELECT c.ownerId FROM Container c INNER JOIN Dewar d USING(dewarId) INNER JOIN Shipping s USING(shippingId) WHERE s.proposalId=${PID}) OR personId IN (SELECT c.ownerId FROM Container c INNER JOIN BLSample bls USING(containerId) INNER JOIN Crystal USING(crystalId) INNER JOIN Protein p USING(proteinId) WHERE p.proposalId=${PID}) OR personId IN (SELECT s.deliveryAgent_flightCodePersonId FROM Shipping s WHERE s.proposalId=${PID} UNION SELECT personId FROM LabContact WHERE labContactId IN (SELECT sendingLabContactId FROM Shipping WHERE proposalId=${PID} UNION SELECT returnLabContactId FROM Shipping WHERE proposalId=${PID}))" Person > ${PROPOSAL_DIR}/Person.sql -mysqldump ${OPTIONS} --where="proposalId=${PID}" Proposal > ${PROPOSAL_DIR}/Proposal.sql +mariadb-dump ${OPTIONS} --where="proposalId=${PID}" Proposal > ${PROPOSAL_DIR}/Proposal.sql -mysqldump ${OPTIONS} --where="sessionId=${SID}" BLSession > ${PROPOSAL_DIR}/BLSession.sql +mariadb-dump ${OPTIONS} --where="sessionId=${SID}" BLSession > ${PROPOSAL_DIR}/BLSession.sql -mysqldump ${OPTIONS} --where="proposalId=${PID} OR labContactId IN (SELECT sendingLabContactId FROM Shipping WHERE proposalId=${PID} UNION SELECT returnLabContactId FROM Shipping WHERE proposalId=${PID})" LabContact > ${PROPOSAL_DIR}/LabContact.sql +mariadb-dump ${OPTIONS} --where="proposalId=${PID} OR labContactId IN (SELECT sendingLabContactId FROM Shipping WHERE proposalId=${PID} UNION SELECT returnLabContactId FROM Shipping WHERE proposalId=${PID})" LabContact > ${PROPOSAL_DIR}/LabContact.sql -mysqldump ${OPTIONS} --where="proposalId=${PID}" Protein > ${PROPOSAL_DIR}/Protein.sql +mariadb-dump ${OPTIONS} --where="proposalId=${PID}" Protein > ${PROPOSAL_DIR}/Protein.sql -mysqldump ${OPTIONS} --where="componentId IN (SELECT proteinId FROM Protein WHERE proposalId=${PID})" ComponentLattice > ${PROPOSAL_DIR}/ComponentLattice.sql +mariadb-dump ${OPTIONS} --where="componentId IN (SELECT proteinId FROM Protein WHERE proposalId=${PID})" ComponentLattice > ${PROPOSAL_DIR}/ComponentLattice.sql -mysqldump ${OPTIONS} --where="componentId IN (SELECT proteinId FROM Protein WHERE proposalId=${PID})" Component_has_SubType > ${PROPOSAL_DIR}/Component_has_SubType.sql +mariadb-dump ${OPTIONS} --where="componentId IN (SELECT proteinId FROM Protein WHERE proposalId=${PID})" Component_has_SubType > ${PROPOSAL_DIR}/Component_has_SubType.sql -mysqldump ${OPTIONS} --where="proposalId=${PID} OR \`global\`>0" Screen > ${PROPOSAL_DIR}/Screen.sql +mariadb-dump ${OPTIONS} --where="proposalId=${PID} OR \`global\`>0" Screen > ${PROPOSAL_DIR}/Screen.sql -mysqldump ${OPTIONS} --where="proteinId IN (SELECT proteinId FROM Protein WHERE proposalId=${PID})" Crystal > ${PROPOSAL_DIR}/Crystal.sql +mariadb-dump ${OPTIONS} --where="proteinId IN (SELECT proteinId FROM Protein WHERE proposalId=${PID})" Crystal > ${PROPOSAL_DIR}/Crystal.sql -mysqldump ${OPTIONS} --where="componentId IN (SELECT proteinId FROM Protein WHERE proposalId=${PID}) AND blSampleTypeId IN (SELECT crystalId FROM Crystal c INNER JOIN Protein p USING(proteinId) WHERE p.proposalId=${PID})" BLSampleType_has_Component > ${PROPOSAL_DIR}/BLSampleType_has_Component.sql +mariadb-dump ${OPTIONS} --where="componentId IN (SELECT proteinId FROM Protein WHERE proposalId=${PID}) AND blSampleTypeId IN (SELECT crystalId FROM Crystal c INNER JOIN Protein p USING(proteinId) WHERE p.proposalId=${PID})" BLSampleType_has_Component > ${PROPOSAL_DIR}/BLSampleType_has_Component.sql -mysqldump ${OPTIONS} --where="pdbId IN (SELECT pdbId FROM PDB INNER JOIN Protein_has_PDB php USING(pdbId) INNER JOIN Protein p USING(proteinId) WHERE p.proposalId=${PID})" PDB > ${PROPOSAL_DIR}/PDB.sql +mariadb-dump ${OPTIONS} --where="pdbId IN (SELECT pdbId FROM PDB INNER JOIN Protein_has_PDB php USING(pdbId) INNER JOIN Protein p USING(proteinId) WHERE p.proposalId=${PID})" PDB > ${PROPOSAL_DIR}/PDB.sql -mysqldump ${OPTIONS} --where="proteinId IN (SELECT proteinId FROM Protein WHERE proposalId=${PID})" Protein_has_PDB > ${PROPOSAL_DIR}/Protein_has_PDB.sql +mariadb-dump ${OPTIONS} --where="proteinId IN (SELECT proteinId FROM Protein WHERE proposalId=${PID})" Protein_has_PDB > ${PROPOSAL_DIR}/Protein_has_PDB.sql -mysqldump ${OPTIONS} --where="screenId IN (SELECT s.screenId FROM Screen s WHERE s.proposalId=${PID} OR s.global>0)" ScreenComponentGroup > ${PROPOSAL_DIR}/ScreenComponentGroup.sql +mariadb-dump ${OPTIONS} --where="screenId IN (SELECT s.screenId FROM Screen s WHERE s.proposalId=${PID} OR s.global>0)" ScreenComponentGroup > ${PROPOSAL_DIR}/ScreenComponentGroup.sql -mysqldump ${OPTIONS} --where="screenComponentGroupId IN (SELECT scg.screenComponentGroupId FROM ScreenComponentGroup scg INNER JOIN Screen s USING(screenId) WHERE s.proposalId=${PID} OR s.global>0) AND componentId IN (SELECT proteinId FROM Protein WHERE proposalId=${PID})" ScreenComponent > ${PROPOSAL_DIR}/ScreenComponent.sql +mariadb-dump ${OPTIONS} --where="screenComponentGroupId IN (SELECT scg.screenComponentGroupId FROM ScreenComponentGroup scg INNER JOIN Screen s USING(screenId) WHERE s.proposalId=${PID} OR s.global>0) AND componentId IN (SELECT proteinId FROM Protein WHERE proposalId=${PID})" ScreenComponent > ${PROPOSAL_DIR}/ScreenComponent.sql -mysqldump ${OPTIONS} --where="positionId IN (SELECT positionId FROM DataCollection WHERE dataCollectionGroupId IN (SELECT dataCollectionGroupId FROM DataCollectionGroup WHERE sessionId=${SID}))" Position > ${PROPOSAL_DIR}/Position1.sql +mariadb-dump ${OPTIONS} --where="positionId IN (SELECT positionId FROM DataCollection WHERE dataCollectionGroupId IN (SELECT dataCollectionGroupId FROM DataCollectionGroup WHERE sessionId=${SID}))" Position > ${PROPOSAL_DIR}/Position1.sql # BLSubSample.positionId -mysqldump ${OPTIONS} --where="positionId IN (SELECT blss.positionId FROM BLSubSample blss INNER JOIN BLSample bls WHERE bls.crystalId IN (SELECT cr.crystalId FROM Crystal cr INNER JOIN Protein p USING(proteinId) WHERE p.proposalId=${PID}) OR bls.containerId IN (SELECT c.containerId FROM Container c INNER JOIN Dewar USING(dewarID) INNER JOIN Shipping s USING(shippingId) WHERE s.proposalId=${PID} AND (c.sessionId IS NULL OR c.sessionId=${SID})))" Position > ${PROPOSAL_DIR}/Position2.sql +mariadb-dump ${OPTIONS} --where="positionId IN (SELECT blss.positionId FROM BLSubSample blss INNER JOIN BLSample bls WHERE bls.crystalId IN (SELECT cr.crystalId FROM Crystal cr INNER JOIN Protein p USING(proteinId) WHERE p.proposalId=${PID}) OR bls.containerId IN (SELECT c.containerId FROM Container c INNER JOIN Dewar USING(dewarID) INNER JOIN Shipping s USING(shippingId) WHERE s.proposalId=${PID} AND (c.sessionId IS NULL OR c.sessionId=${SID})))" Position > ${PROPOSAL_DIR}/Position2.sql # BLSubSample.position2Id -mysqldump ${OPTIONS} --where="positionId IN (SELECT blss.position2Id FROM BLSubSample blss INNER JOIN BLSample bls WHERE bls.crystalId IN (SELECT cr.crystalId FROM Crystal cr INNER JOIN Protein p USING(proteinId) WHERE p.proposalId=${PID}) OR bls.containerId IN (SELECT c.containerId FROM Container c INNER JOIN Dewar USING(dewarID) INNER JOIN Shipping s USING(shippingId) WHERE s.proposalId=${PID} AND (c.sessionId IS NULL OR c.sessionId=${SID})))" Position > ${PROPOSAL_DIR}/Position3.sql +mariadb-dump ${OPTIONS} --where="positionId IN (SELECT blss.position2Id FROM BLSubSample blss INNER JOIN BLSample bls WHERE bls.crystalId IN (SELECT cr.crystalId FROM Crystal cr INNER JOIN Protein p USING(proteinId) WHERE p.proposalId=${PID}) OR bls.containerId IN (SELECT c.containerId FROM Container c INNER JOIN Dewar USING(dewarID) INNER JOIN Shipping s USING(shippingId) WHERE s.proposalId=${PID} AND (c.sessionId IS NULL OR c.sessionId=${SID})))" Position > ${PROPOSAL_DIR}/Position3.sql -mysqldump ${OPTIONS} --where="diffractionPlanId IN (SELECT c.diffractionPlanId FROM Crystal c INNER JOIN Protein p USING(proteinId) WHERE p.proposalId=${PID}) +mariadb-dump ${OPTIONS} --where="diffractionPlanId IN (SELECT c.diffractionPlanId FROM Crystal c INNER JOIN Protein p USING(proteinId) WHERE p.proposalId=${PID}) OR diffractionPlanId IN (SELECT bls.diffractionPlanId FROM BLSample bls INNER JOIN Crystal USING(crystalId) INNER JOIN Protein p USING(proteinId) WHERE p.proposalId=${PID}) OR diffractionPlanId IN (SELECT blss.diffractionPlanId FROM BLSubSample blss INNER JOIN BLSample USING(blSampleId) INNER JOIN Crystal c USING(crystalId) INNER JOIN Protein p USING(proteinId) WHERE p.proposalId=${PID})" DiffractionPlan > ${PROPOSAL_DIR}/DiffractionPlan1.sql -mysqldump ${OPTIONS} --where="proposalId=${PID}" ProposalHasPerson > ${PROPOSAL_DIR}/ProposalHasPerson.sql +mariadb-dump ${OPTIONS} --where="proposalId=${PID}" ProposalHasPerson > ${PROPOSAL_DIR}/ProposalHasPerson.sql -mysqldump ${OPTIONS} --where="proposalId=${PID}" Shipping > ${PROPOSAL_DIR}/Shipping.sql +mariadb-dump ${OPTIONS} --where="proposalId=${PID}" Shipping > ${PROPOSAL_DIR}/Shipping.sql -mysqldump ${OPTIONS} --where="shippingId IN (SELECT shippingId FROM Shipping WHERE proposalId=${PID})" Dewar > ${PROPOSAL_DIR}/Dewar.sql +mariadb-dump ${OPTIONS} --where="shippingId IN (SELECT shippingId FROM Shipping WHERE proposalId=${PID})" Dewar > ${PROPOSAL_DIR}/Dewar.sql -mysqldump ${OPTIONS} --where="containerRegistryId IN (SELECT c.containerRegistryId FROM Container c INNER JOIN Dewar USING(dewarId) INNER JOIN Shipping s USING(shippingId) WHERE s.proposalId=${PID})" ContainerRegistry > ${PROPOSAL_DIR}/ContainerRegistry1.sql +mariadb-dump ${OPTIONS} --where="containerRegistryId IN (SELECT c.containerRegistryId FROM Container c INNER JOIN Dewar USING(dewarId) INNER JOIN Shipping s USING(shippingId) WHERE s.proposalId=${PID})" ContainerRegistry > ${PROPOSAL_DIR}/ContainerRegistry1.sql # Proposal/Session level data -mysqldump ${OPTIONS} --where="sessionId=${SID} OR dewarId IN (SELECT d.dewarId FROM Dewar d INNER JOIN Shipping s USING(shippingId) WHERE s.proposalId=${PID}) OR containerId IN (SELECT bls.containerId FROM BLSample bls INNER JOIN Crystal USING(crystalId) INNER JOIN Protein p USING(proteinId) WHERE p.proposalId=${PID}) OR containerId IN (SELECT containerId FROM BLSample INNER JOIN EnergyScan es USING(blSampleId) WHERE es.sessionId=${SID} UNION ALL SELECT containerId FROM BLSample INNER JOIN XFEFluorescenceSpectrum xfs USING(blSampleId) WHERE xfs.sessionId=${SID})" Container > ${PROPOSAL_DIR}/Container.sql +mariadb-dump ${OPTIONS} --where="sessionId=${SID} OR dewarId IN (SELECT d.dewarId FROM Dewar d INNER JOIN Shipping s USING(shippingId) WHERE s.proposalId=${PID}) OR containerId IN (SELECT bls.containerId FROM BLSample bls INNER JOIN Crystal USING(crystalId) INNER JOIN Protein p USING(proteinId) WHERE p.proposalId=${PID}) OR containerId IN (SELECT containerId FROM BLSample INNER JOIN EnergyScan es USING(blSampleId) WHERE es.sessionId=${SID} UNION ALL SELECT containerId FROM BLSample INNER JOIN XFEFluorescenceSpectrum xfs USING(blSampleId) WHERE xfs.sessionId=${SID})" Container > ${PROPOSAL_DIR}/Container.sql -mysqldump ${OPTIONS} --where="crystalId IN (SELECT cr.crystalId FROM Crystal cr INNER JOIN Protein p USING(proteinId) WHERE p.proposalId=${PID}) OR containerId IN (SELECT c.containerId FROM Container c INNER JOIN Dewar USING(dewarID) INNER JOIN Shipping s USING(shippingId) WHERE s.proposalId=${PID}) OR blSampleId IN (SELECT blSampleId FROM XFEFluorescenceSpectrum WHERE sessionId=${SID} UNION ALL SELECT blSampleId FROM EnergyScan WHERE sessionId=${SID})" BLSample > ${PROPOSAL_DIR}/BLSample1.sql +mariadb-dump ${OPTIONS} --where="crystalId IN (SELECT cr.crystalId FROM Crystal cr INNER JOIN Protein p USING(proteinId) WHERE p.proposalId=${PID}) OR containerId IN (SELECT c.containerId FROM Container c INNER JOIN Dewar USING(dewarID) INNER JOIN Shipping s USING(shippingId) WHERE s.proposalId=${PID}) OR blSampleId IN (SELECT blSampleId FROM XFEFluorescenceSpectrum WHERE sessionId=${SID} UNION ALL SELECT blSampleId FROM EnergyScan WHERE sessionId=${SID})" BLSample > ${PROPOSAL_DIR}/BLSample1.sql -mysqldump ${OPTIONS} --where="blSampleId IN (SELECT bls.blSampleId FROM BLSample bls WHERE bls.crystalId IN (SELECT cr.crystalId FROM Crystal cr INNER JOIN Protein p USING(proteinId) WHERE p.proposalId=${PID}) OR containerId IN (SELECT c.containerId FROM Container c INNER JOIN Dewar USING(dewarID) INNER JOIN Shipping s USING(shippingId) WHERE s.proposalId=${PID} AND (c.sessionId IS NULL OR c.sessionId=${SID}))) OR blSubSampleId IN (SELECT blSubSampleId FROM XFEFluorescenceSpectrum WHERE sessionId=${SID})" BLSubSample > ${PROPOSAL_DIR}/BLSubSample.sql +mariadb-dump ${OPTIONS} --where="blSampleId IN (SELECT bls.blSampleId FROM BLSample bls WHERE bls.crystalId IN (SELECT cr.crystalId FROM Crystal cr INNER JOIN Protein p USING(proteinId) WHERE p.proposalId=${PID}) OR containerId IN (SELECT c.containerId FROM Container c INNER JOIN Dewar USING(dewarID) INNER JOIN Shipping s USING(shippingId) WHERE s.proposalId=${PID} AND (c.sessionId IS NULL OR c.sessionId=${SID}))) OR blSubSampleId IN (SELECT blSubSampleId FROM XFEFluorescenceSpectrum WHERE sessionId=${SID})" BLSubSample > ${PROPOSAL_DIR}/BLSubSample.sql # Session level data -mysqldump ${OPTIONS} --where="sessionId=${SID}" SessionType > ${SESSION_DIR}/SessionType.sql +mariadb-dump ${OPTIONS} --where="sessionId=${SID}" SessionType > ${SESSION_DIR}/SessionType.sql -mysqldump ${OPTIONS} --where="sessionId=${SID}" DataCollectionGroup > ${SESSION_DIR}/DataCollectionGroup.sql +mariadb-dump ${OPTIONS} --where="sessionId=${SID}" DataCollectionGroup > ${SESSION_DIR}/DataCollectionGroup.sql -mysqldump ${OPTIONS} --where="sessionId=${SID}" ShippingHasSession > ${SESSION_DIR}/ShippingHasSession.sql +mariadb-dump ${OPTIONS} --where="sessionId=${SID}" ShippingHasSession > ${SESSION_DIR}/ShippingHasSession.sql -mysqldump ${OPTIONS} --where="apertureId IN (SELECT dc.apertureId FROM DataCollection dc INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" Aperture > ${SESSION_DIR}/Aperture.sql +mariadb-dump ${OPTIONS} --where="apertureId IN (SELECT dc.apertureId FROM DataCollection dc INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" Aperture > ${SESSION_DIR}/Aperture.sql -mysqldump ${OPTIONS} --where="dataCollectionGroupId IN (SELECT dataCollectionGroupId FROM DataCollectionGroup WHERE sessionId=${SID})" DataCollection > ${SESSION_DIR}/DataCollection.sql +mariadb-dump ${OPTIONS} --where="dataCollectionGroupId IN (SELECT dataCollectionGroupId FROM DataCollectionGroup WHERE sessionId=${SID})" DataCollection > ${SESSION_DIR}/DataCollection.sql -mysqldump ${OPTIONS} --where="dataCollectionId IN (SELECT dataCollectionId FROM DataCollection INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" GridImageMap > ${SESSION_DIR}/GridImageMap.sql +mariadb-dump ${OPTIONS} --where="dataCollectionId IN (SELECT dataCollectionId FROM DataCollection INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" GridImageMap > ${SESSION_DIR}/GridImageMap.sql -mysqldump ${OPTIONS} --where="dataCollectionGroupId IN (SELECT dataCollectionGroupId FROM DataCollectionGroup WHERE sessionId=${SID})" GridInfo > ${SESSION_DIR}/GridInfo.sql +mariadb-dump ${OPTIONS} --where="dataCollectionGroupId IN (SELECT dataCollectionGroupId FROM DataCollectionGroup WHERE sessionId=${SID})" GridInfo > ${SESSION_DIR}/GridInfo.sql -mysqldump ${OPTIONS} --where="gridInfoId IN (SELECT gi.gridInfoId FROM GridInfo gi INNER JOIN DataCollectionGroup dcg USING(datacollectionGroupId) WHERE dcg.sessionId=${SID})" XrayCentringResult > ${SESSION_DIR}/XrayCentringResult.sql +mariadb-dump ${OPTIONS} --where="gridInfoId IN (SELECT gi.gridInfoId FROM GridInfo gi INNER JOIN DataCollectionGroup dcg USING(datacollectionGroupId) WHERE dcg.sessionId=${SID})" XrayCentringResult > ${SESSION_DIR}/XrayCentringResult.sql -mysqldump ${OPTIONS} --where="sessionId=${SID}" XFEFluorescenceSpectrum > ${SESSION_DIR}/XFEFluorescenceSpectrum.sql +mariadb-dump ${OPTIONS} --where="sessionId=${SID}" XFEFluorescenceSpectrum > ${SESSION_DIR}/XFEFluorescenceSpectrum.sql -mysqldump ${OPTIONS} --where="sessionId=${SID}" EnergyScan > ${SESSION_DIR}/EnergyScan.sql +mariadb-dump ${OPTIONS} --where="sessionId=${SID}" EnergyScan > ${SESSION_DIR}/EnergyScan.sql -mysqldump ${OPTIONS} --where="sessionId=${SID}" Session_has_Person > ${SESSION_DIR}/Session_has_Person.sql +mariadb-dump ${OPTIONS} --where="sessionId=${SID}" Session_has_Person > ${SESSION_DIR}/Session_has_Person.sql -mysqldump ${OPTIONS} --where="containerRegistryId IN (SELECT c.containerRegistryId FROM Container c WHERE c.sessionId=${SID})" ContainerRegistry > ${SESSION_DIR}/ContainerRegistry2.sql +mariadb-dump ${OPTIONS} --where="containerRegistryId IN (SELECT c.containerRegistryId FROM Container c WHERE c.sessionId=${SID})" ContainerRegistry > ${SESSION_DIR}/ContainerRegistry2.sql -mysqldump ${OPTIONS} --where="blsessionId=${SID}" RobotAction > ${SESSION_DIR}/RobotAction.sql +mariadb-dump ${OPTIONS} --where="blsessionId=${SID}" RobotAction > ${SESSION_DIR}/RobotAction.sql -mysqldump ${OPTIONS} --where="dataCollectionId IN (SELECT dataCollectionId FROM DataCollection INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" ImageQualityIndicators > ${SESSION_DIR}/ImageQualityIndicators.sql +mariadb-dump ${OPTIONS} --where="dataCollectionId IN (SELECT dataCollectionId FROM DataCollection INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" ImageQualityIndicators > ${SESSION_DIR}/ImageQualityIndicators.sql -mysqldump ${OPTIONS} --where="dataCollectionId IN (SELECT dataCollectionId FROM DataCollection INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" DataCollectionComment > ${SESSION_DIR}/DataCollectionComment.sql +mariadb-dump ${OPTIONS} --where="dataCollectionId IN (SELECT dataCollectionId FROM DataCollection INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" DataCollectionComment > ${SESSION_DIR}/DataCollectionComment.sql -mysqldump ${OPTIONS} --where="dataCollectionId IN (SELECT dataCollectionId FROM DataCollection INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" DataCollectionFileAttachment > ${SESSION_DIR}/DataCollectionFileAttachment.sql +mariadb-dump ${OPTIONS} --where="dataCollectionId IN (SELECT dataCollectionId FROM DataCollection INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" DataCollectionFileAttachment > ${SESSION_DIR}/DataCollectionFileAttachment.sql -mysqldump ${OPTIONS} --where="dataCollectionId IN (SELECT dataCollectionId FROM DataCollection INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" Movie > ${SESSION_DIR}/Movie.sql +mariadb-dump ${OPTIONS} --where="dataCollectionId IN (SELECT dataCollectionId FROM DataCollection INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" Movie > ${SESSION_DIR}/Movie.sql if [ USE_TOMO ]; then - mysqldump ${OPTIONS} --where="tomogramId IN (SELECT t.tomogramId FROM Tomogram t INNER JOIN DataCollection USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" TiltImageAlignment > ${SESSION_DIR}/TiltImageAlignment.sql + mariadb-dump ${OPTIONS} --where="tomogramId IN (SELECT t.tomogramId FROM Tomogram t INNER JOIN DataCollection USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" TiltImageAlignment > ${SESSION_DIR}/TiltImageAlignment.sql - mysqldump ${OPTIONS} --where="dataCollectionId IN (SELECT dataCollectionId FROM DataCollection INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" Tomogram > ${SESSION_DIR}/Tomogram.sql + mariadb-dump ${OPTIONS} --where="dataCollectionId IN (SELECT dataCollectionId FROM DataCollection INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" Tomogram > ${SESSION_DIR}/Tomogram.sql fi -mysqldump ${OPTIONS} --where="autoProcProgramId IN (SELECT mc.autoProcProgramId FROM MotionCorrection mc INNER JOIN Movie m USING(movieId) INNER JOIN DataCollection dc ON dc.dataCollectionId=m.dataCollectionId INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" AutoProcProgram > ${SESSION_DIR}/AutoProcProgram3.sql +mariadb-dump ${OPTIONS} --where="autoProcProgramId IN (SELECT mc.autoProcProgramId FROM MotionCorrection mc INNER JOIN Movie m USING(movieId) INNER JOIN DataCollection dc ON dc.dataCollectionId=m.dataCollectionId INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" AutoProcProgram > ${SESSION_DIR}/AutoProcProgram3.sql -mysqldump ${OPTIONS} --where="autoProcProgramId IN (SELECT mc.autoProcProgramId FROM MotionCorrection mc INNER JOIN Movie m USING(movieId) INNER JOIN DataCollection dc ON dc.dataCollectionId=m.dataCollectionId INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" AutoProcProgramAttachment > ${SESSION_DIR}/AutoProcProgramAttachment3.sql +mariadb-dump ${OPTIONS} --where="autoProcProgramId IN (SELECT mc.autoProcProgramId FROM MotionCorrection mc INNER JOIN Movie m USING(movieId) INNER JOIN DataCollection dc ON dc.dataCollectionId=m.dataCollectionId INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" AutoProcProgramAttachment > ${SESSION_DIR}/AutoProcProgramAttachment3.sql -mysqldump ${OPTIONS} --where="autoProcProgramId IN (SELECT mc.autoProcProgramId FROM MotionCorrection mc INNER JOIN Movie m USING(movieId) INNER JOIN DataCollection dc ON dc.dataCollectionId=m.dataCollectionId INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" AutoProcProgramMessage > ${SESSION_DIR}/AutoProcProgramMessage3.sql +mariadb-dump ${OPTIONS} --where="autoProcProgramId IN (SELECT mc.autoProcProgramId FROM MotionCorrection mc INNER JOIN Movie m USING(movieId) INNER JOIN DataCollection dc ON dc.dataCollectionId=m.dataCollectionId INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" AutoProcProgramMessage > ${SESSION_DIR}/AutoProcProgramMessage3.sql if [ USE_SPA ]; then - mysqldump ${OPTIONS} --where="programId IN (SELECT app.autoProcProgramId FROM AutoProcProgram app INNER JOIN ProcessingJob pj USING(processingJobId) INNER JOIN DataCollection USING (dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" ParticlePicker > ${SESSION_DIR}/ParticlePicker.sql + mariadb-dump ${OPTIONS} --where="programId IN (SELECT app.autoProcProgramId FROM AutoProcProgram app INNER JOIN ProcessingJob pj USING(processingJobId) INNER JOIN DataCollection USING (dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" ParticlePicker > ${SESSION_DIR}/ParticlePicker.sql - mysqldump ${OPTIONS} --where="particlePickerId IN (SELECT pp.particlePickerId FROM ParticlePicker pp INNER JOIN AutoProcProgram app ON pp.programId=app.autoProcProgramId INNER JOIN ProcessingJob pj USING(processingJobId) INNER JOIN DataCollection USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" ParticleClassificationGroup > ${SESSION_DIR}/ParticleClassificationGroup.sql + mariadb-dump ${OPTIONS} --where="particlePickerId IN (SELECT pp.particlePickerId FROM ParticlePicker pp INNER JOIN AutoProcProgram app ON pp.programId=app.autoProcProgramId INNER JOIN ProcessingJob pj USING(processingJobId) INNER JOIN DataCollection USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" ParticleClassificationGroup > ${SESSION_DIR}/ParticleClassificationGroup.sql - mysqldump ${OPTIONS} --where="particleClassificationGroupId IN (SELECT pcg.particleClassificationGroupId FROM ParticleClassificationGroup pcg INNER JOIN ParticlePicker pp USING(particlePickerId) INNER JOIN AutoProcProgram app ON pp.programId=app.autoProcProgramId INNER JOIN ProcessingJob pj USING(processingJobId) INNER JOIN DataCollection USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" ParticleClassification > ${SESSION_DIR}/ParticleClassification.sql + mariadb-dump ${OPTIONS} --where="particleClassificationGroupId IN (SELECT pcg.particleClassificationGroupId FROM ParticleClassificationGroup pcg INNER JOIN ParticlePicker pp USING(particlePickerId) INNER JOIN AutoProcProgram app ON pp.programId=app.autoProcProgramId INNER JOIN ProcessingJob pj USING(processingJobId) INNER JOIN DataCollection USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" ParticleClassification > ${SESSION_DIR}/ParticleClassification.sql - mysqldump ${OPTIONS} --where="particleClassificationId IN (SELECT pc.particleClassificationId FROM ParticleClassification pc INNER JOIN ParticleClassificationGroup pcg USING(particleClassificationGroupId) INNER JOIN ParticlePicker pp USING(particlePickerId) INNER JOIN AutoProcProgram app ON pp.programId=app.autoProcProgramId INNER JOIN ProcessingJob pj USING(processingJobId) INNER JOIN DataCollection USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" ParticleClassification_has_CryoemInitialModel > ${SESSION_DIR}/ParticleClassification_has_CryoemInitialModel.sql + mariadb-dump ${OPTIONS} --where="particleClassificationId IN (SELECT pc.particleClassificationId FROM ParticleClassification pc INNER JOIN ParticleClassificationGroup pcg USING(particleClassificationGroupId) INNER JOIN ParticlePicker pp USING(particlePickerId) INNER JOIN AutoProcProgram app ON pp.programId=app.autoProcProgramId INNER JOIN ProcessingJob pj USING(processingJobId) INNER JOIN DataCollection USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" ParticleClassification_has_CryoemInitialModel > ${SESSION_DIR}/ParticleClassification_has_CryoemInitialModel.sql - mysqldump ${OPTIONS} --where="cryoemInitialModelId IN (SELECT pchceim.cryoemInitialModelId FROM ParticleClassification_has_CryoemInitialModel pchceim INNER JOIN ParticleClassification pc USING(particleClassificationId) INNER JOIN ParticleClassificationGroup pcg USING(particleClassificationGroupId) INNER JOIN ParticlePicker pp USING(particlePickerId) INNER JOIN AutoProcProgram app ON pp.programId=app.autoProcProgramId INNER JOIN ProcessingJob pj USING(processingJobId) INNER JOIN DataCollection USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" CryoemInitialModel > ${SESSION_DIR}/CryoemInitialModel.sql + mariadb-dump ${OPTIONS} --where="cryoemInitialModelId IN (SELECT pchceim.cryoemInitialModelId FROM ParticleClassification_has_CryoemInitialModel pchceim INNER JOIN ParticleClassification pc USING(particleClassificationId) INNER JOIN ParticleClassificationGroup pcg USING(particleClassificationGroupId) INNER JOIN ParticlePicker pp USING(particlePickerId) INNER JOIN AutoProcProgram app ON pp.programId=app.autoProcProgramId INNER JOIN ProcessingJob pj USING(processingJobId) INNER JOIN DataCollection USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" CryoemInitialModel > ${SESSION_DIR}/CryoemInitialModel.sql - mysqldump ${OPTIONS} --where="autoProcProgramId IN (SELECT app.autoProcProgramId FROM AutoProcProgram app INNER JOIN ProcessingJob pj USING(processingJobId) INNER JOIN DataCollection USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" RelativeIceThickness > ${SESSION_DIR}/RelativeIceThickness.sql + mariadb-dump ${OPTIONS} --where="autoProcProgramId IN (SELECT app.autoProcProgramId FROM AutoProcProgram app INNER JOIN ProcessingJob pj USING(processingJobId) INNER JOIN DataCollection USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" RelativeIceThickness > ${SESSION_DIR}/RelativeIceThickness.sql fi -mysqldump ${OPTIONS} --where="movieId IN (SELECT m.movieId FROM Movie m INNER JOIN DataCollection USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" MotionCorrection > ${SESSION_DIR}/MotionCorrection.sql +mariadb-dump ${OPTIONS} --where="movieId IN (SELECT m.movieId FROM Movie m INNER JOIN DataCollection USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" MotionCorrection > ${SESSION_DIR}/MotionCorrection.sql -mysqldump ${OPTIONS} --where="motionCorrectionId IN (SELECT mc.motionCorrectionId FROM MotionCorrection mc INNER JOIN Movie m USING(movieId) INNER JOIN DataCollection dc ON dc.dataCollectionId=m.dataCollectionId INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" MotionCorrectionDrift > ${SESSION_DIR}/MotionCorrectionDrift.sql +mariadb-dump ${OPTIONS} --where="motionCorrectionId IN (SELECT mc.motionCorrectionId FROM MotionCorrection mc INNER JOIN Movie m USING(movieId) INNER JOIN DataCollection dc ON dc.dataCollectionId=m.dataCollectionId INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" MotionCorrectionDrift > ${SESSION_DIR}/MotionCorrectionDrift.sql -mysqldump ${OPTIONS} --where="autoProcProgramId IN (SELECT ctf.autoProcProgramId FROM CTF ctf INNER JOIN MotionCorrection USING(motionCorrectionId) INNER JOIN Movie m USING(movieId) INNER JOIN DataCollection dc ON dc.dataCollectionId=m.dataCollectionId INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" AutoProcProgram > ${SESSION_DIR}/AutoProcProgram4.sql +mariadb-dump ${OPTIONS} --where="autoProcProgramId IN (SELECT ctf.autoProcProgramId FROM CTF ctf INNER JOIN MotionCorrection USING(motionCorrectionId) INNER JOIN Movie m USING(movieId) INNER JOIN DataCollection dc ON dc.dataCollectionId=m.dataCollectionId INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" AutoProcProgram > ${SESSION_DIR}/AutoProcProgram4.sql -mysqldump ${OPTIONS} --where="autoProcProgramId IN (SELECT ctf.autoProcProgramId FROM CTF ctf INNER JOIN MotionCorrection USING(motionCorrectionId) INNER JOIN Movie m USING(movieId) INNER JOIN DataCollection dc ON dc.dataCollectionId=m.dataCollectionId INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" AutoProcProgramAttachment > ${SESSION_DIR}/AutoProcProgramAttachment4.sql +mariadb-dump ${OPTIONS} --where="autoProcProgramId IN (SELECT ctf.autoProcProgramId FROM CTF ctf INNER JOIN MotionCorrection USING(motionCorrectionId) INNER JOIN Movie m USING(movieId) INNER JOIN DataCollection dc ON dc.dataCollectionId=m.dataCollectionId INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" AutoProcProgramAttachment > ${SESSION_DIR}/AutoProcProgramAttachment4.sql -mysqldump ${OPTIONS} --where="autoProcProgramId IN (SELECT ctf.autoProcProgramId FROM CTF ctf INNER JOIN MotionCorrection USING(motionCorrectionId) INNER JOIN Movie m USING(movieId) INNER JOIN DataCollection dc ON dc.dataCollectionId=m.dataCollectionId INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" AutoProcProgramMessage > ${SESSION_DIR}/AutoProcProgramMessage4.sql +mariadb-dump ${OPTIONS} --where="autoProcProgramId IN (SELECT ctf.autoProcProgramId FROM CTF ctf INNER JOIN MotionCorrection USING(motionCorrectionId) INNER JOIN Movie m USING(movieId) INNER JOIN DataCollection dc ON dc.dataCollectionId=m.dataCollectionId INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" AutoProcProgramMessage > ${SESSION_DIR}/AutoProcProgramMessage4.sql -mysqldump ${OPTIONS} --where="motionCorrectionId IN (SELECT mc.motionCorrectionId FROM MotionCorrection mc INNER JOIN Movie m USING(movieId) INNER JOIN DataCollection dc ON dc.dataCollectionId=m.dataCollectionId INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" CTF > ${SESSION_DIR}/CTF.sql +mariadb-dump ${OPTIONS} --where="motionCorrectionId IN (SELECT mc.motionCorrectionId FROM MotionCorrection mc INNER JOIN Movie m USING(movieId) INNER JOIN DataCollection dc ON dc.dataCollectionId=m.dataCollectionId INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" CTF > ${SESSION_DIR}/CTF.sql -mysqldump ${OPTIONS} --where="containerId IN (SELECT containerId FROM Container WHERE sessionId=${SID})" ContainerInspection > ${SESSION_DIR}/ContainerInspection.sql +mariadb-dump ${OPTIONS} --where="containerId IN (SELECT containerId FROM Container WHERE sessionId=${SID})" ContainerInspection > ${SESSION_DIR}/ContainerInspection.sql -mysqldump ${OPTIONS} --where="containerId IN (SELECT containerId FROM Container WHERE sessionId=${SID})" ContainerQueue > ${SESSION_DIR}/ContainerQueue.sql +mariadb-dump ${OPTIONS} --where="containerId IN (SELECT containerId FROM Container WHERE sessionId=${SID})" ContainerQueue > ${SESSION_DIR}/ContainerQueue.sql -mysqldump ${OPTIONS} --where="containerQueueId IN (SELECT cq.containerQueueId FROM ContainerQueue cq INNER JOIN Container c USING(containerId) WHERE c.sessionId=${SID})" ContainerQueueSample > ${SESSION_DIR}/ContainerQueueSample.sql +mariadb-dump ${OPTIONS} --where="containerQueueId IN (SELECT cq.containerQueueId FROM ContainerQueue cq INNER JOIN Container c USING(containerId) WHERE c.sessionId=${SID})" ContainerQueueSample > ${SESSION_DIR}/ContainerQueueSample.sql # ProcessingJob* and AutoProc* tables: -mysqldump ${OPTIONS} --where="dataCollectionId IN (SELECT dataCollectionId FROM DataCollection INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID}) OR processingJobId IN (SELECT processingJobId FROM AutoProcProgram INNER JOIN AutoProcIntegration api USING(autoProcProgramId) INNER JOIN DataCollection dc ON api.dataCollectionId=dc.dataCollectionId INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" ProcessingJob > ${SESSION_DIR}/ProcessingJob.sql +mariadb-dump ${OPTIONS} --where="dataCollectionId IN (SELECT dataCollectionId FROM DataCollection INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID}) OR processingJobId IN (SELECT processingJobId FROM AutoProcProgram INNER JOIN AutoProcIntegration api USING(autoProcProgramId) INNER JOIN DataCollection dc ON api.dataCollectionId=dc.dataCollectionId INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" ProcessingJob > ${SESSION_DIR}/ProcessingJob.sql -mysqldump ${OPTIONS} --where="processingJobId IN (SELECT pj.processingJobId FROM ProcessingJob pj INNER JOIN DataCollection USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID}) OR processingJobId IN (SELECT processingJobId FROM AutoProcProgram INNER JOIN AutoProcIntegration api USING(autoProcProgramId) INNER JOIN DataCollection dc ON api.dataCollectionId=dc.dataCollectionId INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" ProcessingJobParameter > ${SESSION_DIR}/ProcessingJobParameter.sql +mariadb-dump ${OPTIONS} --where="processingJobId IN (SELECT pj.processingJobId FROM ProcessingJob pj INNER JOIN DataCollection USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID}) OR processingJobId IN (SELECT processingJobId FROM AutoProcProgram INNER JOIN AutoProcIntegration api USING(autoProcProgramId) INNER JOIN DataCollection dc ON api.dataCollectionId=dc.dataCollectionId INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" ProcessingJobParameter > ${SESSION_DIR}/ProcessingJobParameter.sql -mysqldump ${OPTIONS} --where="processingJobId IN (SELECT pj.processingJobId FROM ProcessingJob pj INNER JOIN DataCollection USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID}) OR processingJobId IN (SELECT processingJobId FROM AutoProcProgram INNER JOIN AutoProcIntegration api USING(autoProcProgramId) INNER JOIN DataCollection dc ON api.dataCollectionId=dc.dataCollectionId INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" ProcessingJobImageSweep > ${SESSION_DIR}/ProcessingJobImageSweep.sql +mariadb-dump ${OPTIONS} --where="processingJobId IN (SELECT pj.processingJobId FROM ProcessingJob pj INNER JOIN DataCollection USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID}) OR processingJobId IN (SELECT processingJobId FROM AutoProcProgram INNER JOIN AutoProcIntegration api USING(autoProcProgramId) INNER JOIN DataCollection dc ON api.dataCollectionId=dc.dataCollectionId INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" ProcessingJobImageSweep > ${SESSION_DIR}/ProcessingJobImageSweep.sql -mysqldump ${OPTIONS} --where="autoProcProgramId IN (SELECT autoProcProgramId FROM AutoProcIntegration WHERE dataCollectionId IN (SELECT dataCollectionId FROM DataCollection WHERE dataCollectionGroupId IN (SELECT dataCollectionGroupId FROM DataCollectionGroup WHERE sessionId=${SID})))" AutoProcProgram > ${SESSION_DIR}/AutoProcProgram1.sql +mariadb-dump ${OPTIONS} --where="autoProcProgramId IN (SELECT autoProcProgramId FROM AutoProcIntegration WHERE dataCollectionId IN (SELECT dataCollectionId FROM DataCollection WHERE dataCollectionGroupId IN (SELECT dataCollectionGroupId FROM DataCollectionGroup WHERE sessionId=${SID})))" AutoProcProgram > ${SESSION_DIR}/AutoProcProgram1.sql -mysqldump ${OPTIONS} --where="autoProcProgramId IN (SELECT autoProcProgramId FROM AutoProcIntegration WHERE dataCollectionId IN (SELECT dataCollectionId FROM DataCollection WHERE dataCollectionGroupId IN (SELECT dataCollectionGroupId FROM DataCollectionGroup WHERE sessionId=${SID})))" AutoProcProgramAttachment > ${SESSION_DIR}/AutoProcProgramAttachment1.sql +mariadb-dump ${OPTIONS} --where="autoProcProgramId IN (SELECT autoProcProgramId FROM AutoProcIntegration WHERE dataCollectionId IN (SELECT dataCollectionId FROM DataCollection WHERE dataCollectionGroupId IN (SELECT dataCollectionGroupId FROM DataCollectionGroup WHERE sessionId=${SID})))" AutoProcProgramAttachment > ${SESSION_DIR}/AutoProcProgramAttachment1.sql -mysqldump ${OPTIONS} --where="autoProcProgramId IN (SELECT autoProcProgramId FROM AutoProcIntegration WHERE dataCollectionId IN (SELECT dataCollectionId FROM DataCollection WHERE dataCollectionGroupId IN (SELECT dataCollectionGroupId FROM DataCollectionGroup WHERE sessionId=${SID})))" AutoProcProgramMessage > ${SESSION_DIR}/AutoProcProgramMessage1.sql +mariadb-dump ${OPTIONS} --where="autoProcProgramId IN (SELECT autoProcProgramId FROM AutoProcIntegration WHERE dataCollectionId IN (SELECT dataCollectionId FROM DataCollection WHERE dataCollectionGroupId IN (SELECT dataCollectionGroupId FROM DataCollectionGroup WHERE sessionId=${SID})))" AutoProcProgramMessage > ${SESSION_DIR}/AutoProcProgramMessage1.sql -mysqldump ${OPTIONS} --where="dataCollectionId IN (SELECT dataCollectionId FROM DataCollection INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" AutoProcProgram > ${SESSION_DIR}/AutoProcProgram2.sql +mariadb-dump ${OPTIONS} --where="dataCollectionId IN (SELECT dataCollectionId FROM DataCollection INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" AutoProcProgram > ${SESSION_DIR}/AutoProcProgram2.sql -mysqldump ${OPTIONS} --where="autoProcProgramId IN (SELECT autoProcProgramId FROM AutoProcProgram WHERE dataCollectionId IN (SELECT dataCollectionId FROM DataCollection WHERE dataCollectionGroupId IN (SELECT dataCollectionGroupId FROM DataCollectionGroup WHERE sessionId=${SID})))" AutoProcProgramAttachment > ${SESSION_DIR}/AutoProcProgramAttachment2.sql +mariadb-dump ${OPTIONS} --where="autoProcProgramId IN (SELECT autoProcProgramId FROM AutoProcProgram WHERE dataCollectionId IN (SELECT dataCollectionId FROM DataCollection WHERE dataCollectionGroupId IN (SELECT dataCollectionGroupId FROM DataCollectionGroup WHERE sessionId=${SID})))" AutoProcProgramAttachment > ${SESSION_DIR}/AutoProcProgramAttachment2.sql -mysqldump ${OPTIONS} --where="autoProcProgramId IN (SELECT autoProcProgramId FROM AutoProcProgram WHERE dataCollectionId IN (SELECT dataCollectionId FROM DataCollection WHERE dataCollectionGroupId IN (SELECT dataCollectionGroupId FROM DataCollectionGroup WHERE sessionId=${SID})))" AutoProcProgramMessage > ${SESSION_DIR}/AutoProcProgramMessage2.sql +mariadb-dump ${OPTIONS} --where="autoProcProgramId IN (SELECT autoProcProgramId FROM AutoProcProgram WHERE dataCollectionId IN (SELECT dataCollectionId FROM DataCollection WHERE dataCollectionGroupId IN (SELECT dataCollectionGroupId FROM DataCollectionGroup WHERE sessionId=${SID})))" AutoProcProgramMessage > ${SESSION_DIR}/AutoProcProgramMessage2.sql -mysqldump ${OPTIONS} --where="dataCollectionId IN (SELECT dataCollectionId FROM DataCollection INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" AutoProcIntegration > ${SESSION_DIR}/AutoProcIntegration.sql +mariadb-dump ${OPTIONS} --where="dataCollectionId IN (SELECT dataCollectionId FROM DataCollection INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" AutoProcIntegration > ${SESSION_DIR}/AutoProcIntegration.sql -mysqldump ${OPTIONS} --where="autoProcIntegrationId IN (SELECT autoProcIntegrationId FROM AutoProcIntegration WHERE dataCollectionId IN (SELECT dataCollectionId FROM DataCollection WHERE dataCollectionGroupId IN (SELECT dataCollectionGroupId FROM DataCollectionGroup WHERE sessionId=${SID})))" AutoProcStatus > ${SESSION_DIR}/AutoProcStatus.sql +mariadb-dump ${OPTIONS} --where="autoProcIntegrationId IN (SELECT autoProcIntegrationId FROM AutoProcIntegration WHERE dataCollectionId IN (SELECT dataCollectionId FROM DataCollection WHERE dataCollectionGroupId IN (SELECT dataCollectionGroupId FROM DataCollectionGroup WHERE sessionId=${SID})))" AutoProcStatus > ${SESSION_DIR}/AutoProcStatus.sql -mysqldump ${OPTIONS} --where="autoProcId IN (SELECT autoProcId FROM AutoProcScaling WHERE autoProcScalingId IN (SELECT autoProcScalingId FROM AutoProcScaling_has_Int WHERE autoProcIntegrationId IN (SELECT autoProcIntegrationId FROM AutoProcIntegration WHERE dataCollectionId IN (SELECT dataCollectionId FROM DataCollection WHERE dataCollectionGroupId IN (SELECT dataCollectionGroupId FROM DataCollectionGroup WHERE sessionId=${SID})))))" AutoProc > ${SESSION_DIR}/AutoProc.sql +mariadb-dump ${OPTIONS} --where="autoProcId IN (SELECT autoProcId FROM AutoProcScaling WHERE autoProcScalingId IN (SELECT autoProcScalingId FROM AutoProcScaling_has_Int WHERE autoProcIntegrationId IN (SELECT autoProcIntegrationId FROM AutoProcIntegration WHERE dataCollectionId IN (SELECT dataCollectionId FROM DataCollection WHERE dataCollectionGroupId IN (SELECT dataCollectionGroupId FROM DataCollectionGroup WHERE sessionId=${SID})))))" AutoProc > ${SESSION_DIR}/AutoProc.sql -mysqldump ${OPTIONS} --where="autoProcScalingId IN (SELECT apshi.autoProcScalingId FROM AutoProcScaling_has_Int apshi INNER JOIN AutoProcIntegration api USING(autoProcIntegrationId) INNER JOIN DataCollection dc USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" AutoProcScaling > ${SESSION_DIR}/AutoProcScaling.sql +mariadb-dump ${OPTIONS} --where="autoProcScalingId IN (SELECT apshi.autoProcScalingId FROM AutoProcScaling_has_Int apshi INNER JOIN AutoProcIntegration api USING(autoProcIntegrationId) INNER JOIN DataCollection dc USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" AutoProcScaling > ${SESSION_DIR}/AutoProcScaling.sql -mysqldump ${OPTIONS} --where="autoProcIntegrationId IN (SELECT autoProcIntegrationId FROM AutoProcIntegration WHERE dataCollectionId IN (SELECT dataCollectionId FROM DataCollection WHERE dataCollectionGroupId IN (SELECT dataCollectionGroupId FROM DataCollectionGroup WHERE sessionId=${SID})))" AutoProcScaling_has_Int > ${SESSION_DIR}/AutoProcScaling_has_Int.sql +mariadb-dump ${OPTIONS} --where="autoProcIntegrationId IN (SELECT autoProcIntegrationId FROM AutoProcIntegration WHERE dataCollectionId IN (SELECT dataCollectionId FROM DataCollection WHERE dataCollectionGroupId IN (SELECT dataCollectionGroupId FROM DataCollectionGroup WHERE sessionId=${SID})))" AutoProcScaling_has_Int > ${SESSION_DIR}/AutoProcScaling_has_Int.sql -mysqldump ${OPTIONS} --where="autoProcScalingId IN (SELECT apshi.autoProcScalingId FROM AutoProcScaling_has_Int apshi INNER JOIN AutoProcIntegration api USING(autoProcIntegrationId) INNER JOIN DataCollection dc USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" AutoProcScalingStatistics > ${SESSION_DIR}/AutoProcScalingStatistics.sql +mariadb-dump ${OPTIONS} --where="autoProcScalingId IN (SELECT apshi.autoProcScalingId FROM AutoProcScaling_has_Int apshi INNER JOIN AutoProcIntegration api USING(autoProcIntegrationId) INNER JOIN DataCollection dc USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" AutoProcScalingStatistics > ${SESSION_DIR}/AutoProcScalingStatistics.sql -mysqldump ${OPTIONS} --where="autoProcScalingId IN (SELECT apshi.autoProcScalingId FROM AutoProcScaling_has_Int apshi INNER JOIN AutoProcIntegration api USING(autoProcIntegrationId) INNER JOIN DataCollection dc USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" MXMRRun > ${SESSION_DIR}/MXMRRun.sql +mariadb-dump ${OPTIONS} --where="autoProcScalingId IN (SELECT apshi.autoProcScalingId FROM AutoProcScaling_has_Int apshi INNER JOIN AutoProcIntegration api USING(autoProcIntegrationId) INNER JOIN DataCollection dc USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" MXMRRun > ${SESSION_DIR}/MXMRRun.sql -mysqldump ${OPTIONS} --where="mxMRRunId IN (SELECT mr.mxMRRunId FROM MXMRRun mr INNER JOIN AutoProcScaling_has_Int apshi USING(autoProcScalingId) INNER JOIN AutoProcIntegration api USING(autoProcIntegrationId) INNER JOIN DataCollection dc USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" MXMRRunBlob > ${SESSION_DIR}/MXMRRunBlob.sql +mariadb-dump ${OPTIONS} --where="mxMRRunId IN (SELECT mr.mxMRRunId FROM MXMRRun mr INNER JOIN AutoProcScaling_has_Int apshi USING(autoProcScalingId) INNER JOIN AutoProcIntegration api USING(autoProcIntegrationId) INNER JOIN DataCollection dc USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" MXMRRunBlob > ${SESSION_DIR}/MXMRRunBlob.sql # Screening* tables: -mysqldump ${OPTIONS} --where="dataCollectionGroupId IN (SELECT dataCollectionGroupId FROM DataCollectionGroup WHERE sessionId=${SID}) OR dataCollectionId IN (SELECT dc.dataCollectionId FROM DataCollection dc INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" Screening > ${SESSION_DIR}/Screening.sql +mariadb-dump ${OPTIONS} --where="dataCollectionGroupId IN (SELECT dataCollectionGroupId FROM DataCollectionGroup WHERE sessionId=${SID}) OR dataCollectionId IN (SELECT dc.dataCollectionId FROM DataCollection dc INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" Screening > ${SESSION_DIR}/Screening.sql -mysqldump ${OPTIONS} --where="screeningId IN (SELECT s.screeningId FROM Screening s INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID}) OR screeningId IN (SELECT screeningId FROM Screening s INNER JOIN DataCollection dc USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg ON dcg.dataCollectionGroupId=dc.dataCollectionGroupId WHERE dcg.sessionId=${SID})" ScreeningOutput > ${SESSION_DIR}/ScreeningOutput.sql +mariadb-dump ${OPTIONS} --where="screeningId IN (SELECT s.screeningId FROM Screening s INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID}) OR screeningId IN (SELECT screeningId FROM Screening s INNER JOIN DataCollection dc USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg ON dcg.dataCollectionGroupId=dc.dataCollectionGroupId WHERE dcg.sessionId=${SID})" ScreeningOutput > ${SESSION_DIR}/ScreeningOutput.sql -mysqldump ${OPTIONS} --where="screeningOutputId IN (SELECT screeningOutputId FROM ScreeningOutput so INNER JOIN Screening s USING(screeningId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID}) OR screeningOutputId IN (SELECT screeningOutputId FROM ScreeningOutput so INNER JOIN Screening s USING(screeningId) INNER JOIN DataCollection dc USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg ON dcg.dataCollectionGroupId=dc.dataCollectionGroupId WHERE dcg.sessionId=${SID})" ScreeningOutputLattice > ${SESSION_DIR}/ScreeningOutputLattice.sql +mariadb-dump ${OPTIONS} --where="screeningOutputId IN (SELECT screeningOutputId FROM ScreeningOutput so INNER JOIN Screening s USING(screeningId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID}) OR screeningOutputId IN (SELECT screeningOutputId FROM ScreeningOutput so INNER JOIN Screening s USING(screeningId) INNER JOIN DataCollection dc USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg ON dcg.dataCollectionGroupId=dc.dataCollectionGroupId WHERE dcg.sessionId=${SID})" ScreeningOutputLattice > ${SESSION_DIR}/ScreeningOutputLattice.sql -mysqldump ${OPTIONS} --where="screeningOutputId IN (SELECT screeningOutputId FROM ScreeningOutput so INNER JOIN Screening s USING(screeningId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID}) OR screeningOutputId IN (SELECT screeningOutputId FROM ScreeningOutput so INNER JOIN Screening s USING(screeningId) INNER JOIN DataCollection dc USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg ON dcg.dataCollectionGroupId=dc.dataCollectionGroupId WHERE dcg.sessionId=${SID})" ScreeningStrategy > ${SESSION_DIR}/ScreeningStrategy.sql +mariadb-dump ${OPTIONS} --where="screeningOutputId IN (SELECT screeningOutputId FROM ScreeningOutput so INNER JOIN Screening s USING(screeningId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID}) OR screeningOutputId IN (SELECT screeningOutputId FROM ScreeningOutput so INNER JOIN Screening s USING(screeningId) INNER JOIN DataCollection dc USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg ON dcg.dataCollectionGroupId=dc.dataCollectionGroupId WHERE dcg.sessionId=${SID})" ScreeningStrategy > ${SESSION_DIR}/ScreeningStrategy.sql -mysqldump ${OPTIONS} --where="screeningStrategyId IN (SELECT screeningStrategyId FROM ScreeningStrategy ss INNER JOIN ScreeningOutput so USING(screeningOutputId) INNER JOIN Screening s USING(screeningId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID}) OR screeningStrategyId IN (SELECT screeningStrategyId FROM ScreeningStrategy ss INNER JOIN ScreeningOutput so USING(screeningOutputId) INNER JOIN Screening s USING(screeningId) INNER JOIN DataCollection dc USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg ON dcg.dataCollectionGroupId=dc.dataCollectionGroupId WHERE dcg.sessionId=${SID})" ScreeningStrategyWedge > ${SESSION_DIR}/ScreeningStrategyWedge.sql +mariadb-dump ${OPTIONS} --where="screeningStrategyId IN (SELECT screeningStrategyId FROM ScreeningStrategy ss INNER JOIN ScreeningOutput so USING(screeningOutputId) INNER JOIN Screening s USING(screeningId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID}) OR screeningStrategyId IN (SELECT screeningStrategyId FROM ScreeningStrategy ss INNER JOIN ScreeningOutput so USING(screeningOutputId) INNER JOIN Screening s USING(screeningId) INNER JOIN DataCollection dc USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg ON dcg.dataCollectionGroupId=dc.dataCollectionGroupId WHERE dcg.sessionId=${SID})" ScreeningStrategyWedge > ${SESSION_DIR}/ScreeningStrategyWedge.sql -mysqldump ${OPTIONS} --where="screeningStrategyWedgeId IN (SELECT screeningStrategyWedgeId FROM ScreeningStrategyWedge ssw INNER JOIN ScreeningStrategy ss USING(screeningStrategyId) INNER JOIN ScreeningOutput so USING(screeningOutputId) INNER JOIN Screening s USING(screeningId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID}) OR screeningStrategyWedgeId IN (SELECT screeningStrategyWedgeId FROM ScreeningStrategyWedge ssw INNER JOIN ScreeningStrategy ss USING(screeningStrategyId) INNER JOIN ScreeningOutput so USING(screeningOutputId) INNER JOIN Screening s USING(screeningId) INNER JOIN DataCollection dc USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg ON dcg.dataCollectionGroupId=dc.dataCollectionGroupId WHERE dcg.sessionId=${SID})" ScreeningStrategySubWedge > ${SESSION_DIR}/ScreeningStrategySubWedge.sql +mariadb-dump ${OPTIONS} --where="screeningStrategyWedgeId IN (SELECT screeningStrategyWedgeId FROM ScreeningStrategyWedge ssw INNER JOIN ScreeningStrategy ss USING(screeningStrategyId) INNER JOIN ScreeningOutput so USING(screeningOutputId) INNER JOIN Screening s USING(screeningId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID}) OR screeningStrategyWedgeId IN (SELECT screeningStrategyWedgeId FROM ScreeningStrategyWedge ssw INNER JOIN ScreeningStrategy ss USING(screeningStrategyId) INNER JOIN ScreeningOutput so USING(screeningOutputId) INNER JOIN Screening s USING(screeningId) INNER JOIN DataCollection dc USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg ON dcg.dataCollectionGroupId=dc.dataCollectionGroupId WHERE dcg.sessionId=${SID})" ScreeningStrategySubWedge > ${SESSION_DIR}/ScreeningStrategySubWedge.sql # Phasing tables -mysqldump ${OPTIONS} --where="autoProcScalingId IN (SELECT apshi.autoProcScalingId FROM AutoProcScaling_has_Int apshi INNER JOIN AutoProcIntegration api USING(autoProcIntegrationId) INNER JOIN DataCollection dc USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" Phasing_has_Scaling > ${SESSION_DIR}/Phasing_has_Scaling.sql +mariadb-dump ${OPTIONS} --where="autoProcScalingId IN (SELECT apshi.autoProcScalingId FROM AutoProcScaling_has_Int apshi INNER JOIN AutoProcIntegration api USING(autoProcIntegrationId) INNER JOIN DataCollection dc USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" Phasing_has_Scaling > ${SESSION_DIR}/Phasing_has_Scaling.sql -mysqldump ${OPTIONS} --where="phasingAnalysisId IN (SELECT phs.phasingAnalysisId FROM Phasing_has_Scaling phs INNER JOIN AutoProcScaling_has_Int USING(autoProcScalingId) INNER JOIN AutoProcIntegration USING(autoProcIntegrationId) INNER JOIN DataCollection USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" PhasingAnalysis > ${SESSION_DIR}/PhasingAnalysis.sql +mariadb-dump ${OPTIONS} --where="phasingAnalysisId IN (SELECT phs.phasingAnalysisId FROM Phasing_has_Scaling phs INNER JOIN AutoProcScaling_has_Int USING(autoProcScalingId) INNER JOIN AutoProcIntegration USING(autoProcIntegrationId) INNER JOIN DataCollection USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" PhasingAnalysis > ${SESSION_DIR}/PhasingAnalysis.sql -mysqldump ${OPTIONS} --where="phasingAnalysisId IN (SELECT phs.phasingAnalysisId FROM Phasing_has_Scaling phs INNER JOIN AutoProcScaling_has_Int USING(autoProcScalingId) INNER JOIN AutoProcIntegration USING(autoProcIntegrationId) INNER JOIN DataCollection USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" ModelBuilding > ${SESSION_DIR}/ModelBuilding.sql +mariadb-dump ${OPTIONS} --where="phasingAnalysisId IN (SELECT phs.phasingAnalysisId FROM Phasing_has_Scaling phs INNER JOIN AutoProcScaling_has_Int USING(autoProcScalingId) INNER JOIN AutoProcIntegration USING(autoProcIntegrationId) INNER JOIN DataCollection USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" ModelBuilding > ${SESSION_DIR}/ModelBuilding.sql -mysqldump ${OPTIONS} --where="phasingAnalysisId IN (SELECT phs.phasingAnalysisId FROM Phasing_has_Scaling phs INNER JOIN AutoProcScaling_has_Int USING(autoProcScalingId) INNER JOIN AutoProcIntegration USING(autoProcIntegrationId) INNER JOIN DataCollection USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" SubstructureDetermination > ${SESSION_DIR}/SubstructureDetermination.sql +mariadb-dump ${OPTIONS} --where="phasingAnalysisId IN (SELECT phs.phasingAnalysisId FROM Phasing_has_Scaling phs INNER JOIN AutoProcScaling_has_Int USING(autoProcScalingId) INNER JOIN AutoProcIntegration USING(autoProcIntegrationId) INNER JOIN DataCollection USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" SubstructureDetermination > ${SESSION_DIR}/SubstructureDetermination.sql -mysqldump ${OPTIONS} --where="phasingAnalysisId IN (SELECT phs.phasingAnalysisId FROM Phasing_has_Scaling phs INNER JOIN AutoProcScaling_has_Int USING(autoProcScalingId) INNER JOIN AutoProcIntegration USING(autoProcIntegrationId) INNER JOIN DataCollection USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" PreparePhasingData > ${SESSION_DIR}/PreparePhasingData.sql +mariadb-dump ${OPTIONS} --where="phasingAnalysisId IN (SELECT phs.phasingAnalysisId FROM Phasing_has_Scaling phs INNER JOIN AutoProcScaling_has_Int USING(autoProcScalingId) INNER JOIN AutoProcIntegration USING(autoProcIntegrationId) INNER JOIN DataCollection USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" PreparePhasingData > ${SESSION_DIR}/PreparePhasingData.sql -mysqldump ${OPTIONS} --where="phasingProgramRunId IN (SELECT p.phasingProgramRunId FROM Phasing p INNER JOIN Phasing_has_Scaling USING(phasingAnalysisId) INNER JOIN AutoProcScaling_has_Int USING(autoProcScalingId) INNER JOIN AutoProcIntegration USING(autoProcIntegrationId) INNER JOIN DataCollection USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" PhasingProgramRun > ${SESSION_DIR}/PhasingProgramRun.sql +mariadb-dump ${OPTIONS} --where="phasingProgramRunId IN (SELECT p.phasingProgramRunId FROM Phasing p INNER JOIN Phasing_has_Scaling USING(phasingAnalysisId) INNER JOIN AutoProcScaling_has_Int USING(autoProcScalingId) INNER JOIN AutoProcIntegration USING(autoProcIntegrationId) INNER JOIN DataCollection USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" PhasingProgramRun > ${SESSION_DIR}/PhasingProgramRun.sql -mysqldump ${OPTIONS} --where="phasingProgramRunId IN (SELECT p.phasingProgramRunId FROM Phasing p INNER JOIN Phasing_has_Scaling USING(phasingAnalysisId) INNER JOIN AutoProcScaling_has_Int USING(autoProcScalingId) INNER JOIN AutoProcIntegration USING(autoProcIntegrationId) INNER JOIN DataCollection USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" PhasingProgramAttachment > ${SESSION_DIR}/PhasingProgramAttachment.sql +mariadb-dump ${OPTIONS} --where="phasingProgramRunId IN (SELECT p.phasingProgramRunId FROM Phasing p INNER JOIN Phasing_has_Scaling USING(phasingAnalysisId) INNER JOIN AutoProcScaling_has_Int USING(autoProcScalingId) INNER JOIN AutoProcIntegration USING(autoProcIntegrationId) INNER JOIN DataCollection USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" PhasingProgramAttachment > ${SESSION_DIR}/PhasingProgramAttachment.sql -mysqldump ${OPTIONS} --where="phasingAnalysisId IN (SELECT phs.phasingAnalysisId FROM Phasing_has_Scaling phs INNER JOIN AutoProcScaling_has_Int USING(autoProcScalingId) INNER JOIN AutoProcIntegration USING(autoProcIntegrationId) INNER JOIN DataCollection USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" Phasing > ${SESSION_DIR}/Phasing.sql +mariadb-dump ${OPTIONS} --where="phasingAnalysisId IN (SELECT phs.phasingAnalysisId FROM Phasing_has_Scaling phs INNER JOIN AutoProcScaling_has_Int USING(autoProcScalingId) INNER JOIN AutoProcIntegration USING(autoProcIntegrationId) INNER JOIN DataCollection USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" Phasing > ${SESSION_DIR}/Phasing.sql -mysqldump ${OPTIONS} --where="phasingStatisticsId IN (SELECT ps.phasingStatisticsId FROM PhasingStatistics ps INNER JOIN Phasing_has_Scaling phs ON ps.phasingHasScalingId1=phs.phasingHasScalingId OR ps.phasingHasScalingId2=phs.phasingHasScalingId INNER JOIN AutoProcScaling_has_Int USING(autoProcScalingId) INNER JOIN AutoProcIntegration USING(autoProcIntegrationId) INNER JOIN DataCollection USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" PhasingStatistics > ${SESSION_DIR}/PhasingStatistics.sql +mariadb-dump ${OPTIONS} --where="phasingStatisticsId IN (SELECT ps.phasingStatisticsId FROM PhasingStatistics ps INNER JOIN Phasing_has_Scaling phs ON ps.phasingHasScalingId1=phs.phasingHasScalingId OR ps.phasingHasScalingId2=phs.phasingHasScalingId INNER JOIN AutoProcScaling_has_Int USING(autoProcScalingId) INNER JOIN AutoProcIntegration USING(autoProcIntegrationId) INNER JOIN DataCollection USING(dataCollectionId) INNER JOIN DataCollectionGroup dcg USING(dataCollectionGroupId) WHERE dcg.sessionId=${SID})" PhasingStatistics > ${SESSION_DIR}/PhasingStatistics.sql # Combine INSERT statements in the PROPOSAL_DIR .sql files in the correct order. diff --git a/bin/forget_all_labs.sh b/bin/forget_all_labs.sh index 7134d79c..26d3b9fb 100755 --- a/bin/forget_all_labs.sh +++ b/bin/forget_all_labs.sh @@ -18,12 +18,12 @@ DB=$2 PROPOSAL=$3 SESSNUM=$4 -PID=`mysql --defaults-file=${MYCNF} -s -D ${DB} -e "SELECT proposalId FROM Proposal WHERE concat(proposalCode, proposalNumber)='${PROPOSAL}';"` -SID=`mysql --defaults-file=${MYCNF} -s -D ${DB} -e "SELECT sessionId FROM BLSession WHERE proposalId='${PID}' AND visit_number=${SESSNUM};"` -PERSID=`mysql --defaults-file=${MYCNF} -s -D ${DB} -e "SELECT personId FROM Proposal WHERE proposalId=${PID};"` -LABID=`mysql --defaults-extra-file=${MYCNF} -s -D ${DB} -e "SELECT laboratoryId FROM Person WHERE personId=${PERSID};"` +PID=`mariadb --defaults-file=${MYCNF} -s -D ${DB} -e "SELECT proposalId FROM Proposal WHERE concat(proposalCode, proposalNumber)='${PROPOSAL}';"` +SID=`mariadb --defaults-file=${MYCNF} -s -D ${DB} -e "SELECT sessionId FROM BLSession WHERE proposalId='${PID}' AND visit_number=${SESSNUM};"` +PERSID=`mariadb --defaults-file=${MYCNF} -s -D ${DB} -e "SELECT personId FROM Proposal WHERE proposalId=${PID};"` +LABID=`mariadb --defaults-extra-file=${MYCNF} -s -D ${DB} -e "SELECT laboratoryId FROM Person WHERE personId=${PERSID};"` -LABIDS=`mysql --defaults-file=${MYCNF} -D ${DB} --skip-column-names --silent --raw -e "SELECT laboratoryId FROM Laboratory WHERE laboratoryId=${LABID} OR laboratoryId IN (SELECT p.laboratoryId FROM Person p INNER JOIN LabContact lc USING(personId) WHERE lc.proposalId=${PID}) OR laboratoryId IN (SELECT laboratoryId FROM Person p INNER JOIN Session_has_Person shp USING(personId) WHERE shp.sessionId=${SID}) OR laboratoryId IN (SELECT laboratoryId FROM Person p INNER JOIN ProposalHasPerson php USING(personId) WHERE php.proposalId=${PID}) OR laboratoryId IN (SELECT p.laboratoryId FROM Person p INNER JOIN Container c ON c.ownerId=p.personId WHERE c.sessionId=${SID}) OR laboratoryId IN (SELECT p.laboratoryId FROM Person p INNER JOIN Container c ON c.ownerId=p.personId INNER JOIN Dewar d USING(dewarId) INNER JOIN Shipping s USING(shippingId) WHERE s.proposalId=${PID}) OR laboratoryId IN (SELECT pe.laboratoryId FROM Person pe INNER JOIN Container c ON c.ownerId=pe.personId INNER JOIN BLSample bls USING(containerId) INNER JOIN Crystal USING(crystalId) INNER JOIN Protein p USING(proteinId) WHERE p.proposalId=${PID}) OR laboratoryId IN (SELECT pe.laboratoryId FROM Person pe INNER JOIN Shipping s ON pe.personId=s.deliveryAgent_flightCodePersonId WHERE s.proposalId=${PID})"` +LABIDS=`mariadb --defaults-file=${MYCNF} -D ${DB} --skip-column-names --silent --raw -e "SELECT laboratoryId FROM Laboratory WHERE laboratoryId=${LABID} OR laboratoryId IN (SELECT p.laboratoryId FROM Person p INNER JOIN LabContact lc USING(personId) WHERE lc.proposalId=${PID}) OR laboratoryId IN (SELECT laboratoryId FROM Person p INNER JOIN Session_has_Person shp USING(personId) WHERE shp.sessionId=${SID}) OR laboratoryId IN (SELECT laboratoryId FROM Person p INNER JOIN ProposalHasPerson php USING(personId) WHERE php.proposalId=${PID}) OR laboratoryId IN (SELECT p.laboratoryId FROM Person p INNER JOIN Container c ON c.ownerId=p.personId WHERE c.sessionId=${SID}) OR laboratoryId IN (SELECT p.laboratoryId FROM Person p INNER JOIN Container c ON c.ownerId=p.personId INNER JOIN Dewar d USING(dewarId) INNER JOIN Shipping s USING(shippingId) WHERE s.proposalId=${PID}) OR laboratoryId IN (SELECT pe.laboratoryId FROM Person pe INNER JOIN Container c ON c.ownerId=pe.personId INNER JOIN BLSample bls USING(containerId) INNER JOIN Crystal USING(crystalId) INNER JOIN Protein p USING(proteinId) WHERE p.proposalId=${PID}) OR laboratoryId IN (SELECT pe.laboratoryId FROM Person pe INNER JOIN Shipping s ON pe.personId=s.deliveryAgent_flightCodePersonId WHERE s.proposalId=${PID})"` while read -r LABID; do `./forget_lab.sh ${MYCNF} ${DB} ${LABID}` diff --git a/bin/forget_all_persons.sh b/bin/forget_all_persons.sh index d82e8824..c31a7719 100755 --- a/bin/forget_all_persons.sh +++ b/bin/forget_all_persons.sh @@ -21,11 +21,11 @@ SESSNUM=$4 # Get the proposal PID and the session SID: -PID=`mysql --defaults-file=${MYCNF} -s -D ${DB} -e "SELECT proposalId FROM Proposal WHERE concat(proposalCode, proposalNumber)='${PROPOSAL}';"` -SID=`mysql --defaults-file=${MYCNF} -s -D ${DB} -e "SELECT sessionId FROM BLSession WHERE proposalId='${PID}' AND visit_number=${SESSNUM};"` +PID=`mariadb --defaults-file=${MYCNF} -s -D ${DB} -e "SELECT proposalId FROM Proposal WHERE concat(proposalCode, proposalNumber)='${PROPOSAL}';"` +SID=`mariadb --defaults-file=${MYCNF} -s -D ${DB} -e "SELECT sessionId FROM BLSession WHERE proposalId='${PID}' AND visit_number=${SESSNUM};"` # Get all personIds related to the PID and SID -PERSIDS=`mysql --defaults-file=${MYCNF} -D ${DB} --skip-column-names --silent --raw -e "SELECT personId FROM Proposal WHERE proposalId=${PID} UNION SELECT personId FROM Person WHERE personId IN (SELECT personId FROM LabContact WHERE proposalId=${PID}) OR personId IN (SELECT personId FROM Session_has_Person WHERE sessionId=${SID}) OR personId IN (SELECT personId FROM ProposalHasPerson WHERE proposalId=${PID}) OR personId IN (SELECT ownerId FROM Container WHERE sessionId=${SID}) OR personId IN (SELECT c.ownerId FROM Container c INNER JOIN Dewar d USING(dewarId) INNER JOIN Shipping s USING(shippingId) WHERE s.proposalId=${PID}) OR personId IN (SELECT c.ownerId FROM Container c INNER JOIN BLSample bls USING(containerId) INNER JOIN Crystal USING(crystalId) INNER JOIN Protein p USING(proteinId) WHERE p.proposalId=${PID}) OR personId IN (SELECT s.deliveryAgent_flightCodePersonId FROM Shipping s WHERE s.proposalId=${PID});"` +PERSIDS=`mariadb --defaults-file=${MYCNF} -D ${DB} --skip-column-names --silent --raw -e "SELECT personId FROM Proposal WHERE proposalId=${PID} UNION SELECT personId FROM Person WHERE personId IN (SELECT personId FROM LabContact WHERE proposalId=${PID}) OR personId IN (SELECT personId FROM Session_has_Person WHERE sessionId=${SID}) OR personId IN (SELECT personId FROM ProposalHasPerson WHERE proposalId=${PID}) OR personId IN (SELECT ownerId FROM Container WHERE sessionId=${SID}) OR personId IN (SELECT c.ownerId FROM Container c INNER JOIN Dewar d USING(dewarId) INNER JOIN Shipping s USING(shippingId) WHERE s.proposalId=${PID}) OR personId IN (SELECT c.ownerId FROM Container c INNER JOIN BLSample bls USING(containerId) INNER JOIN Crystal USING(crystalId) INNER JOIN Protein p USING(proteinId) WHERE p.proposalId=${PID}) OR personId IN (SELECT s.deliveryAgent_flightCodePersonId FROM Shipping s WHERE s.proposalId=${PID});"` # iterate over and forget: diff --git a/bin/forget_lab.sh b/bin/forget_lab.sh index 2eda0f9c..a2485b5d 100755 --- a/bin/forget_lab.sh +++ b/bin/forget_lab.sh @@ -16,4 +16,4 @@ MYCNF=$1 DB=$2 LABID=$3 -mysql --defaults-file=${MYCNF} -s -D ${DB} -e "UPDATE Laboratory SET name='lab-${LABID}', laboratoryUUID=NULL, city=NULL, address=NULL, country=NULL, url=NULL, organization=NULL, laboratoryPk=NULL, postcode=NULL WHERE laboratoryId=${LABID};" +mariadb --defaults-file=${MYCNF} -s -D ${DB} -e "UPDATE Laboratory SET name='lab-${LABID}', laboratoryUUID=NULL, city=NULL, address=NULL, country=NULL, url=NULL, organization=NULL, laboratoryPk=NULL, postcode=NULL WHERE laboratoryId=${LABID};" diff --git a/bin/forget_pdb.sh b/bin/forget_pdb.sh index d6c5b2f3..ac76fd13 100755 --- a/bin/forget_pdb.sh +++ b/bin/forget_pdb.sh @@ -16,4 +16,4 @@ MYCNF=$1 DB=$2 PDBID=$3 -mysql --defaults-file=${MYCNF} -s -D ${DB} -e "UPDATE PDB SET name=pdbId, contents=NULL, code=NULL WHERE pdbId=${PDBID};" +mariadb --defaults-file=${MYCNF} -s -D ${DB} -e "UPDATE PDB SET name=pdbId, contents=NULL, code=NULL WHERE pdbId=${PDBID};" diff --git a/bin/forget_person.sh b/bin/forget_person.sh index f5885724..c63388cd 100755 --- a/bin/forget_person.sh +++ b/bin/forget_person.sh @@ -16,5 +16,5 @@ MYCNF=$1 DB=$2 PERSONID=$3 -mysql --defaults-file=${MYCNF} -s -D ${DB} -e "UPDATE Person SET familyName='Doe', givenName='John', title=NULL, emailAddress='hello@example.com', phoneNumber=NULL, login='john-${PERSONID}', faxNumber=NULL, cache=NULL, externalId=NULL WHERE personId='${PERSONID}';" -mysql --defaults-file=${MYCNF} -s -D ${DB} -e "UPDATE LabContact SET cardName=concat('Doe', labContactId), defaultCourrierCompany='Doe', courierAccount='12345', billingReference=NULL, dewarAvgCustomsValue=0, dewarAvgTransportValue=0 WHERE personId='${PERSONID}';" +mariadb --defaults-file=${MYCNF} -s -D ${DB} -e "UPDATE Person SET familyName='Doe', givenName='John', title=NULL, emailAddress='hello@example.com', phoneNumber=NULL, login='john-${PERSONID}', faxNumber=NULL, cache=NULL, externalId=NULL WHERE personId='${PERSONID}';" +mariadb --defaults-file=${MYCNF} -s -D ${DB} -e "UPDATE LabContact SET cardName=concat('Doe', labContactId), defaultCourrierCompany='Doe', courierAccount='12345', billingReference=NULL, dewarAvgCustomsValue=0, dewarAvgTransportValue=0 WHERE personId='${PERSONID}';" diff --git a/bin/forget_protein.sh b/bin/forget_protein.sh index a40e7673..c411c4fb 100755 --- a/bin/forget_protein.sh +++ b/bin/forget_protein.sh @@ -16,4 +16,4 @@ MYCNF=$1 DB=$2 PROTEINID=$3 -mysql --defaults-file=${MYCNF} -s -D ${DB} -e "UPDATE Protein SET name='prot-${PROTEINID}', acronym='prot-${PROTEINID}', safetyLevel='GREEN', molecularMass=NULL, proteinType=NULL, sequence=NULL, componentTypeId=NULL, concentrationTypeId=NULL, externalId=NULL, density=NULL, abundance=NULL WHERE proteinId=${PROTEINID};" +mariadb --defaults-file=${MYCNF} -s -D ${DB} -e "UPDATE Protein SET name='prot-${PROTEINID}', acronym='prot-${PROTEINID}', safetyLevel='GREEN', molecularMass=NULL, proteinType=NULL, sequence=NULL, componentTypeId=NULL, concentrationTypeId=NULL, externalId=NULL, density=NULL, abundance=NULL WHERE proteinId=${PROTEINID};" diff --git a/bin/forget_sample.sh b/bin/forget_sample.sh index b216af86..b4bd8096 100755 --- a/bin/forget_sample.sh +++ b/bin/forget_sample.sh @@ -16,4 +16,4 @@ MYCNF=$1 DB=$2 BLSAMPLEID=$3 -mysql --defaults-file=${MYCNF} -s -D ${DB} -e "UPDATE BLSample SET name='s-${BLSAMPLEID}', code='c-${BLSAMPLEID}', comments=NULL WHERE blSampleId='${BLSAMPLEID}';" +mariadb --defaults-file=${MYCNF} -s -D ${DB} -e "UPDATE BLSample SET name='s-${BLSAMPLEID}', code='c-${BLSAMPLEID}', comments=NULL WHERE blSampleId='${BLSAMPLEID}';" diff --git a/bin/forget_shipping.sh b/bin/forget_shipping.sh index 72e2f3e1..13f42fa3 100755 --- a/bin/forget_shipping.sh +++ b/bin/forget_shipping.sh @@ -16,4 +16,4 @@ MYCNF=$1 DB=$2 SHIPPINGID=$3 -mysql --defaults-file=${MYCNF} -s -D ${DB} -e "UPDATE Shipping SET shippingName='s-${SHIPPINGID}', comments=NULL, SAFETYLEVEL=NULL, deliveryAgent_agentCode=NULL, deliveryAgent_flightCode=NULL, deliveryAgent_label=NULL, deliveryAgent_productcode=NULL WHERE shippingId='${SHIPPINGID}';" +mariadb --defaults-file=${MYCNF} -s -D ${DB} -e "UPDATE Shipping SET shippingName='s-${SHIPPINGID}', comments=NULL, SAFETYLEVEL=NULL, deliveryAgent_agentCode=NULL, deliveryAgent_flightCode=NULL, deliveryAgent_label=NULL, deliveryAgent_productcode=NULL WHERE shippingId='${SHIPPINGID}';" diff --git a/bin/forget_subsample.sh b/bin/forget_subsample.sh index 044f5be8..981567d5 100755 --- a/bin/forget_subsample.sh +++ b/bin/forget_subsample.sh @@ -16,4 +16,4 @@ MYCNF=$1 DB=$2 BLSUBSAMPLEID=$3 -mysql --defaults-file=${MYCNF} -s -D ${DB} -e "UPDATE BLSubSample SET comments=NULL WHERE blSubSampleId='${BLSUBSAMPLEID}';" +mariadb --defaults-file=${MYCNF} -s -D ${DB} -e "UPDATE BLSubSample SET comments=NULL WHERE blSubSampleId='${BLSUBSAMPLEID}';" diff --git a/bin/forget_unused_shipments.sh b/bin/forget_unused_shipments.sh index 2990ebfc..ba9dc9c0 100755 --- a/bin/forget_unused_shipments.sh +++ b/bin/forget_unused_shipments.sh @@ -22,9 +22,9 @@ SESSNUM=$4 # Get the proposal PID: -PID=`mysql --defaults-file=${MYCNF} -s -D ${DB} -e "SELECT proposalId FROM Proposal WHERE concat(proposalCode, proposalNumber)='${PROPOSAL}';"` +PID=`mariadb --defaults-file=${MYCNF} -s -D ${DB} -e "SELECT proposalId FROM Proposal WHERE concat(proposalCode, proposalNumber)='${PROPOSAL}';"` -SID=`mysql --defaults-extra-file=${MYCNF} -s -D ${DB} -e "SELECT sessionId FROM BLSession WHERE proposalId='${PID}' AND visit_number=${SESSNUM};"` +SID=`mariadb --defaults-extra-file=${MYCNF} -s -D ${DB} -e "SELECT sessionId FROM BLSession WHERE proposalId='${PID}' AND visit_number=${SESSNUM};"` # Query to find all shippingIds of all used samples and sub-samples # on the session. Beware of NULLs! @@ -69,7 +69,7 @@ WHERE s.proposalId=${PID} ${SHIPPINGID_USED_SELECT} )" -SHIPPINGIDS=`mysql --defaults-file=${MYCNF} -D ${DB} --skip-column-names --silent --raw -e "${SHIPPINGID_UNUSED_SELECT};"` +SHIPPINGIDS=`mariadb --defaults-file=${MYCNF} -D ${DB} --skip-column-names --silent --raw -e "${SHIPPINGID_UNUSED_SELECT};"` # Iterate over shippings and forget: @@ -92,7 +92,7 @@ FROM ( GROUP BY bls.blSampleId) q1 WHERE q1.cnt1=0 AND q1.cnt2=0 AND q1.cnt3=0" -BLSAMPLEIDS=`mysql --defaults-file=${MYCNF} -D ${DB} --skip-column-names --silent --raw -e "${BLSAMPLE_UNUSED_SELECT};"` +BLSAMPLEIDS=`mariadb --defaults-file=${MYCNF} -D ${DB} --skip-column-names --silent --raw -e "${BLSAMPLE_UNUSED_SELECT};"` # Iterate over samples and forget: @@ -117,7 +117,7 @@ FROM ( GROUP BY blss.blSubSampleId) q2 WHERE q2.cnt1=0 AND q2.cnt2=0 AND q2.cnt3=0" -BLSUBSAMPLEIDS=`mysql --defaults-file=${MYCNF} -D ${DB} --skip-column-names --silent --raw -e "${BLSUBSAMPLE_UNUSED_SELECT};"` +BLSUBSAMPLEIDS=`mariadb --defaults-file=${MYCNF} -D ${DB} --skip-column-names --silent --raw -e "${BLSUBSAMPLE_UNUSED_SELECT};"` # Iterate over sub-samples and forget: @@ -127,7 +127,7 @@ done <<< "${BLSUBSAMPLEIDS}" # Query to find all unused proteins on the proposal -PROTEINIDS=`mysql --defaults-file=${MYCNF} -D ${DB} --skip-column-names --silent --raw -e "SELECT p.proteinId +PROTEINIDS=`mariadb --defaults-file=${MYCNF} -D ${DB} --skip-column-names --silent --raw -e "SELECT p.proteinId FROM Protein p LEFT JOIN Crystal c USING(proteinId) LEFT JOIN BLSample bls USING(crystalId) @@ -147,7 +147,7 @@ done <<< "${PROTEINIDS}" # Query to find all unused PDBs on the proposal -PDBIDS=`mysql --defaults-file=${MYCNF} -D ${DB} --skip-column-names --silent --raw -e "SELECT phpdb.pdbId +PDBIDS=`mariadb --defaults-file=${MYCNF} -D ${DB} --skip-column-names --silent --raw -e "SELECT phpdb.pdbId FROM Protein_has_PDB phpdb JOIN Protein p USING(proteinId) WHERE p.proposalId=${PID} diff --git a/bin/missed_updates.sh b/bin/missed_updates.sh index 8ee162e6..94fdcfde 100755 --- a/bin/missed_updates.sh +++ b/bin/missed_updates.sh @@ -19,7 +19,7 @@ source ${project_root}/bin/functions.sh all_sql_files=`cd ${project_root}/schemas/ispyb/updates && ls *.sql && cd ../..` # Get a list of all update files recorded in the SchemaStatus table -done_sql_files=`mysql --defaults-file=${project_root}/.my.cnf -D $DB --skip-column-names --silent --raw -e "SELECT scriptName FROM SchemaStatus WHERE schemaStatus = 'DONE' ORDER BY recordTimeStamp;"` +done_sql_files=`mariadb --defaults-file=${project_root}/.my.cnf -D $DB --skip-column-names --silent --raw -e "SELECT scriptName FROM SchemaStatus WHERE schemaStatus = 'DONE' ORDER BY recordTimeStamp;"` # Make a list of all update files not recorded in the SchemaStatus table arr=() diff --git a/build.sh b/build.sh index 4e0a6a8a..245f6ba3 100755 --- a/build.sh +++ b/build.sh @@ -14,26 +14,26 @@ source bin/functions.sh function drop_db { echo "Dropping + creating build database" - mysql --defaults-file=.my.cnf -e "DROP DATABASE IF EXISTS $1; CREATE DATABASE $1; SET GLOBAL log_bin_trust_function_creators=ON;" + mariadb --defaults-file=.my.cnf -e "DROP DATABASE IF EXISTS $1; CREATE DATABASE $1; SET GLOBAL log_bin_trust_function_creators=ON;" } function exec_schema { - mysql --defaults-file=.my.cnf -D $1 < schemas/ispyb/tables.sql - mysql --defaults-file=.my.cnf -D $1 < schemas/ispyb/lookups.sql - mysql --defaults-file=.my.cnf -D $1 < schemas/ispyb/data.sql - mysql --defaults-file=.my.cnf -D $1 < schemas/ispyb/routines.sql + mariadb --defaults-file=.my.cnf -D $1 < schemas/ispyb/tables.sql + mariadb --defaults-file=.my.cnf -D $1 < schemas/ispyb/lookups.sql + mariadb --defaults-file=.my.cnf -D $1 < schemas/ispyb/data.sql + mariadb --defaults-file=.my.cnf -D $1 < schemas/ispyb/routines.sql } function exec_grants { - mysql --defaults-file=.my.cnf -D $1 < grants/ispyb_acquisition.sql - mysql --defaults-file=.my.cnf -D $1 < grants/ispyb_import.sql - mysql --defaults-file=.my.cnf -D $1 < grants/ispyb_processing.sql - mysql --defaults-file=.my.cnf -D $1 < grants/ispyb_ro_nopii.sql - mysql --defaults-file=.my.cnf -D $1 < grants/ispyb_scripts_processing.sql - mysql --defaults-file=.my.cnf -D $1 < grants/ispyb_touchscreen.sql - mysql --defaults-file=.my.cnf -D $1 < grants/ispyb_web.sql - mysql --defaults-file=.my.cnf -D $1 < grants/ispyb_web_verify_tests.sql - mysql --defaults-file=.my.cnf -D $1 < grants/ispyb_ssx_writer.sql + mariadb --defaults-file=.my.cnf -D $1 < grants/ispyb_acquisition.sql + mariadb --defaults-file=.my.cnf -D $1 < grants/ispyb_import.sql + mariadb --defaults-file=.my.cnf -D $1 < grants/ispyb_processing.sql + mariadb --defaults-file=.my.cnf -D $1 < grants/ispyb_ro_nopii.sql + mariadb --defaults-file=.my.cnf -D $1 < grants/ispyb_scripts_processing.sql + mariadb --defaults-file=.my.cnf -D $1 < grants/ispyb_touchscreen.sql + mariadb --defaults-file=.my.cnf -D $1 < grants/ispyb_web.sql + mariadb --defaults-file=.my.cnf -D $1 < grants/ispyb_web_verify_tests.sql + mariadb --defaults-file=.my.cnf -D $1 < grants/ispyb_ssx_writer.sql } function exec_missed_updates { @@ -43,7 +43,7 @@ function exec_missed_updates { echo "Running schemas/ispyb/updates/*.sql files that haven't yet been run:" for sql_file in ${arr[@]}; do echo "$sql_file" - mysql --defaults-file=.my.cnf -D ${1} < "schemas/ispyb/updates/${sql_file}" + mariadb --defaults-file=.my.cnf -D ${1} < "schemas/ispyb/updates/${sql_file}" done else echo "No new schemas/ispyb/updates/*.sql files." @@ -121,12 +121,12 @@ fi if [ $SCHEMA = true ]; then exec_schema "$DB" fi -if [ $GRANTS = true ]; then - exec_grants "$DB" -fi if [ $UPDATES = true ]; then exec_missed_updates "$DB" fi +if [ $GRANTS = true ]; then + exec_grants "$DB" +fi if [ $DOCS = true ]; then # Attempt generating docs only if pandoc is installed, otherwise output warning diff --git a/docs/index.md b/docs/index.md deleted file mode 100644 index 06896230..00000000 --- a/docs/index.md +++ /dev/null @@ -1,33 +0,0 @@ -[![Build Status](https://travis-ci.org/DiamondLightSource/ispyb-database.svg?branch=master)](https://travis-ci.org/DiamondLightSource/ispyb-database) - -# ispyb-database - -This package provides all the scripts necessary to create an up-to-date ISPyB -database. - -## Requirements - -* MariaDB 10.0+ or MySQL 5.6+, but we recommend MariaDB 10.2 or later. -* If binary logging is enabled in the DB system, then execute this before importing the test schema: set global log_bin_trust_function_creators=ON; - -## Installation - -Run this on the command-line to create a database and import the schema stored in the SQL files: - -```bash -mysql -e "CREATE DATABASE ispyb" -mysql ispyb < schema/tables.sql -mysql ispyb < schema/lookups.sql -mysql ispyb < schema/data.sql -mysql ispyb < schema/routines.sql -``` - -Note that the `data.sql` file contains test data, so is only useful in a development environment. - -Alternatively, in a test environment you can also run the build.sh file. This creates the database, runs the above .sql files and more. - -## Documentation - -* Please refer to the [```Wiki```](https://github.com/DiamondLightSource/ispyb-database/wiki) for database diagrams, stored procedure how-to, MariaDB installation and more -* A complete [```list of tables and columns```](https://github.com/DiamondLightSource/ispyb-database/blob/master/docs/list_of_tables_and_columns.rst) for more details about the tables and columns -* A complete [```list of stored procedures```](https://github.com/DiamondLightSource/ispyb-database/blob/master/docs/list_of_procs.rst) for more details about the stored procedures diff --git a/release.sh b/release.sh index 3ed5e797..a613bc8c 100755 --- a/release.sh +++ b/release.sh @@ -17,7 +17,7 @@ github_api_token=`cat .github-api-token` owner=DiamondLightSource repo=ispyb-database db="ispyb_build" -schema_version=`mysql --defaults-file=.my.cnf -D $db --skip-column-names --silent --raw -e "SELECT value FROM AdminVar WHERE name = 'schemaVersion';"` +schema_version=`mariadb --defaults-file=.my.cnf -D $db --skip-column-names --silent --raw -e "SELECT value FROM AdminVar WHERE name = 'schemaVersion';"` tag=v${schema_version} archive=./dist/ispyb-database-${schema_version}.tar.gz filename=${archive} diff --git a/schemas/ispyb_analytics/build.sh b/schemas/ispyb_analytics/build.sh index 6e3464a3..585ff2f3 100755 --- a/schemas/ispyb_analytics/build.sh +++ b/schemas/ispyb_analytics/build.sh @@ -27,24 +27,23 @@ then fi echo "Modifying ${db} database" -mysql --defaults-file="${project_root}"/.my.cnf -D "${db}" < "${dir}"/tables.sql -mysql --defaults-file="${project_root}"/.my.cnf -D "${db}" < "${dir}"/data.sql -mysql --defaults-file="${project_root}"/.my.cnf -D "${db}" < "${dir}"/modify_ispyb.sql +mariadb --defaults-file="${project_root}"/.my.cnf -D "${db}" < "${dir}"/tables.sql +mariadb --defaults-file="${project_root}"/.my.cnf -D "${db}" < "${dir}"/data.sql +mariadb --defaults-file="${project_root}"/.my.cnf -D "${db}" < "${dir}"/modify_ispyb.sql echo "Re-creating ${db_analytics} database with views" -mysql --defaults-file="${project_root}"/.my.cnf -e "DROP DATABASE IF EXISTS $db_analytics; CREATE DATABASE IF NOT EXISTS $db_analytics; SET GLOBAL log_bin_trust_function_creators=ON;" +mariadb --defaults-file="${project_root}"/.my.cnf -e "DROP DATABASE IF EXISTS $db_analytics; CREATE DATABASE IF NOT EXISTS $db_analytics; SET GLOBAL log_bin_trust_function_creators=ON;" # Read views.sql into variable, replace variable sql=$(env ispyb="${db}" envsubst < "${dir}"/views.sql) -echo "${sql}" | mysql --defaults-file="${project_root}"/.my.cnf -D "${db_analytics}" +echo "${sql}" | mariadb --defaults-file="${project_root}"/.my.cnf -D "${db_analytics}" echo "Creating role and granting permission to access views" -mysql --defaults-file="${project_root}"/.my.cnf -D "${db_analytics}" < "${dir}"/grants.sql +mariadb --defaults-file="${project_root}"/.my.cnf -D "${db_analytics}" < "${dir}"/grants.sql # Create views and grants for the lookup tables for TABLE in "${LOOKUP_TABLES[@]}" do : - mysql --defaults-file="${project_root}"/.my.cnf -D "${db_analytics}" -e "CREATE OR REPLACE SQL SECURITY DEFINER VIEW ${TABLE} AS SELECT * FROM $ispyb.${TABLE}" - mysql --defaults-file="${project_root}"/.my.cnf -D "${db_analytics}" -e "GRANT SELECT ON ${TABLE} TO data_scientist" + mariadb --defaults-file="${project_root}"/.my.cnf -D "${db_analytics}" -e "CREATE OR REPLACE SQL SECURITY DEFINER VIEW ${TABLE} AS SELECT * FROM $ispyb.${TABLE}" + mariadb --defaults-file="${project_root}"/.my.cnf -D "${db_analytics}" -e "GRANT SELECT ON ${TABLE} TO data_scientist" done -