|
|
@@ -26,23 +26,37 @@ Help() |
|
|
|
# Display Help |
|
|
|
echo "This script performs database functions for the ExPub Compendium" |
|
|
|
echo |
|
|
|
echo "Syntax: database_functions.sh [-l|h|e]" |
|
|
|
echo "Syntax: database_functions.sh [-l|h|e|i|c]" |
|
|
|
echo "options:" |
|
|
|
echo "l Print the MIT License notification." |
|
|
|
echo "h Print this Help." |
|
|
|
echo "e Export." |
|
|
|
echo "i Import." |
|
|
|
echo "e Export whole database." |
|
|
|
echo "i Import whole database." |
|
|
|
echo "c Export single table as CSV." |
|
|
|
echo "v Import CSV file to table." |
|
|
|
echo |
|
|
|
} |
|
|
|
|
|
|
|
Export() |
|
|
|
{ |
|
|
|
docker exec -it $CONTAINER mysqldump --single-transaction -u $USERNAME -p$PASSWORD $DATABASE > $EXPORT_FILENAME`date +"%Y%m%d"`.sql |
|
|
|
docker exec -it $CONTAINER mysqldump --single-transaction -u $USERNAME -p$PASSWORD $DATABASE > $EXPORT_SQL_FILENAME`date +"%Y%m%d"`.sql |
|
|
|
} |
|
|
|
|
|
|
|
Import() |
|
|
|
{ |
|
|
|
docker exec -i $CONTAINER mysql -u $USERNAME -p$PASSWORD $DATABASE < $DIRECTORY/$IMPORT_FILENAME |
|
|
|
docker exec -i $CONTAINER mysql -u $USERNAME -p$PASSWORD $DATABASE < $IMPORT_SQL_DIRECTORY/$IMPORT_SQL_FILENAME |
|
|
|
} |
|
|
|
|
|
|
|
CSV_table_export() |
|
|
|
{ |
|
|
|
docker exec -it $CONTAINER bash -c "mysql -u $USERNAME -p$PASSWORD $DATABASE --batch -e 'SELECT * FROM $TABLE'" > $EXPORT_CSV_DIRECTORY/$CSV_FILENAME.txt |
|
|
|
} |
|
|
|
|
|
|
|
CSV_table_import() |
|
|
|
{ |
|
|
|
docker cp $IMPORT_CSV_FILE $CONTAINER:/tmp/import_file |
|
|
|
|
|
|
|
docker exec -i $CONTAINER bash -c "mysql -u $USERNAME -p$PASSWORD $DATABASE -e 'LOAD DATA LOCAL INFILE '\''/tmp/import_file'\'' REPLACE INTO TABLE $TABLE FIELDS TERMINATED BY '\''\t'\'' LINES TERMINATED BY '\''\n'\'' IGNORE 1 ROWS;'" |
|
|
|
} |
|
|
|
############################################################ |
|
|
|
############################################################ |
|
|
@@ -55,13 +69,15 @@ CONTAINER=mariadb |
|
|
|
DATABASE=toolkit |
|
|
|
USERNAME=xxxxxxxx |
|
|
|
PASSWORD=xxxxxxxx |
|
|
|
EXPORT_FILENAME=toolkit_db_ |
|
|
|
DIRECTORY="/Users/ad7588/Downloads" |
|
|
|
IMPORT_FILENAME=toolkit_db.sql |
|
|
|
EXPORT_SQL_FILENAME=toolkit_db_ |
|
|
|
IMPORT_SQL_DIRECTORY="/Users/ad7588/Downloads" |
|
|
|
IMPORT_SQL_FILENAME=toolkit_db.sql |
|
|
|
EXPORT_CSV_DIRECTORY="./db_exports" |
|
|
|
CSV_FILENAME=$2`date +"%Y%m%d"` |
|
|
|
|
|
|
|
# Get the options |
|
|
|
while getopts ":hlimzaespxdw" option; do |
|
|
|
case $option in |
|
|
|
while getopts ":hleicv" flag; do |
|
|
|
case $flag in |
|
|
|
l) # display License |
|
|
|
License |
|
|
|
exit;; |
|
|
@@ -74,6 +90,15 @@ while getopts ":hlimzaespxdw" option; do |
|
|
|
i) # import database from file |
|
|
|
Import |
|
|
|
exit;; |
|
|
|
c) # export single table as CSV |
|
|
|
TABLE=$2 |
|
|
|
CSV_table_export |
|
|
|
exit;; |
|
|
|
v) # import single CSV to table |
|
|
|
TABLE=$2 |
|
|
|
IMPORT_CSV_FILE=$3 |
|
|
|
CSV_table_import |
|
|
|
exit;; |
|
|
|
\?) # Invalid option |
|
|
|
echo "Error: Invalid option" |
|
|
|
exit;; |