Improves upgrade script.
[platal.git] / upgrade / inc / pervasive.sh
index 046d5ab..d0a1992 100755 (executable)
@@ -41,7 +41,7 @@ function mysql_pipe() {
 function mysql_exec() {
     echo -n " * executing $1 "
     if [[ -z "${DRY_RUN}" ]]; then
-        (echo $1 | mysql_pipe) || die "ERROR"
+        (echo "$1" | mysql_pipe) || die "ERROR"
     fi
     echo "OK"
 }
@@ -53,7 +53,7 @@ function mysql_pipe_nodb() {
 function mysql_exec_nodb() {
     echo -n " * executing $1 "
     if [[ -z "${DRY_RUN}" ]]; then
-        (echo $1 | mysql_pipe_nodb) || die "ERROR"
+        (echo "$1" | mysql_pipe_nodb) || die "ERROR"
     fi
     echo "OK"
 }
@@ -61,11 +61,30 @@ function mysql_exec_nodb() {
 function mysql_run() {
     echo -n " * running $1 "
     if [[ -z "${DRY_RUN}" ]]; then
-        (cat $1 | mysql_pipe) || die "ERROR"
+        (cat "$1" | mysql_pipe) || die "ERROR"
     fi
     echo "OK"
 }
 
+function create_db() {
+    echo "* create database "
+    mysql_exec_nodb "CREATE DATABASE IF NOT EXISTS $DATABASE;"
+    mysql_exec_nodb "GRANT ALTER, CREATE, CREATE TEMPORARY TABLES, DELETE, DROP, EXECUTE, INDEX, INSERT, LOCK TABLES, SELECT, UPDATE ON $DATABASE.* TO 'web'@'localhost';"
+    mysql_exec_nodb "FLUSH PRIVILEGES;"
+    echo "OK"
+}
+
+function copy_db() {
+    if [[ -n "$SOURCE_DATABASE" ]]; then
+        confirm "* copying database from $SOURCE_DATABASE to $DATABASE"
+        create_db
+        echo -n "* build database from dump "
+        ( mysqldump --add-drop-table -Q $SOURCE_DATABASE | $MYSQL $DATABASE ) \
+            || die "ERROR"
+        echo "OK"
+    fi
+}
+
 function mysql_run_directory() {
     for sql in $1/*.sql ; do
         mysql_run $sql