RSS Git Download  Clone
Raw Blame History
#!/bin/sh

# RUN ON A TEST SERVER WITH UP-TO-DATE CLONE OF REQUIRED DB - SEE README.TXT

# copies cloned database (supplied from command-line switch) to anon_tmp db on localhost
# anonymises names, dob & nhs_numbers in patients table + patient_case.unit_numbers
# creates new output file as <source_db_anon>.gz in current dir

if [ $# -lt 3 ]
then
    echo "usage: $0 <source db name> <username> <password>"
    exit 0
fi

SRC_DB=$1
USERNAME=$2
PASSWORD=$3
SERVER=localhost
TMP_DB=anon_tmp
GZ=$SRC_DB.anonymised.sql

# echo "$SRC_DB"
# echo "$GZ"

mysql -u$USERNAME -p$PASSWORD -e "create database if not exists $TMP_DB"

mysqldump --opt --verbose -h $SERVER -u$USERNAME -p$PASSWORD $SRC_DB \
  --ignore-table=$SRC_DB.patient_bcr_abl \
  --ignore-table=$SRC.SRC_DB.patient_demographics \
  --ignore-table=$SRC_DB.patient_edits \
  --ignore-table=$SRC_DB.patient_notes \
  --ignore-table=$SRC_DB.pre_registration \
  --ignore-table=$SRC_DB.request_form \
  --ignore-table=$SRC_DB.request_storage_copy \
  --ignore-table=$SRC_DB.user_messages \
  --ignore-table=$SRC_DB._email_contacts \
| mysql -u$USERNAME -p$PASSWORD $TMP_DB

perl anonymise_db.pl $TMP_DB $SRC_DB

echo "compressing ......."

# -t = Do not write CREATE TABLE statements that re-create each dumped table
# -c = Use complete INSERT statements that include column names
mysqldump -u $USERNAME -p$PASSWORD $TMP_DB -c | gzip -9 - >$GZ.gz # -9 = best compression

mysql -u$USERNAME -p$PASSWORD -e "drop database $TMP_DB"

echo "done"