Browse Source

added to database_functions.sh script

joel
Simon Bowie 2 years ago
parent
commit
142959c69a
2 changed files with 37 additions and 10 deletions
  1. +2
    -0
      .gitignore
  2. +35
    -10
      database_functions.sh

+ 2
- 0
.gitignore View File

@@ -4,3 +4,5 @@ web/app/__pycache__/
.DS_Store
instance
database_functions_live.sh
old_database_schema
db_exports

+ 35
- 10
database_functions.sh View File

@@ -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;;

Loading…
Cancel
Save