| function check_result { | function check_result { | ||||
| if [ $1 != 0 ]; then | if [ $1 != 0 ]; then | ||||
| echo "Error: $2"; | |||||
| echo "Error $1: $2"; | |||||
| exit 1; | exit 1; | ||||
| fi | fi | ||||
| } | } | ||||
| sleep 60 # to avoid hitting it while the first start for setting root pwd | sleep 60 # to avoid hitting it while the first start for setting root pwd | ||||
| R=111 | R=111 | ||||
| while [ $R -eq 111 ]; do | while [ $R -eq 111 ]; do | ||||
| mysql -u root -p${MARIADB_ROOT_PASSWORD} -h ${DB_HOST} -e "SHOW DATABASES" 2> /dev/null; | |||||
| mysql --skip-ssl -u root -p${MARIADB_ROOT_PASSWORD} -h ${DB_HOST} -e "SHOW DATABASES" 2> /dev/null; | |||||
| R=$?; | R=$?; | ||||
| done | done | ||||
| # check if DB exists | # check if DB exists | ||||
| DB_EXISTS=$(mysql -u root -p${MARIADB_ROOT_PASSWORD} -h ${DB_HOST} -e "SHOW DATABASES" 2> /dev/null | grep ${NEXTCLOUD_DB_NAME}) | |||||
| DB_EXISTS=$(mysql --skip-ssl -u root -p${MARIADB_ROOT_PASSWORD} -h ${DB_HOST} -e "SHOW DATABASES" 2> /dev/null | grep ${NEXTCLOUD_DB_NAME}) | |||||
| echo "DB exists: ${DB_EXISTS}" | echo "DB exists: ${DB_EXISTS}" | ||||
| if [ -z "${DB_EXISTS}" ]; then | if [ -z "${DB_EXISTS}" ]; then | ||||
| echo "Creating Database" | echo "Creating Database" | ||||
| #mysql -u root -p${MARIADB_ROOT_PASSWORD} -h ${DB_HOST} -e "DROP DATABASE IF EXISTS ${NEXTCLOUD_DB_NAME};" | |||||
| #mysql --skip-ssl -u root -p${MARIADB_ROOT_PASSWORD} -h ${DB_HOST} -e "DROP DATABASE IF EXISTS ${NEXTCLOUD_DB_NAME};" | |||||
| #check_result $? "Dropping DB" | #check_result $? "Dropping DB" | ||||
| mysql -u root -p${MARIADB_ROOT_PASSWORD} -h ${DB_HOST} -e "CREATE DATABASE ${NEXTCLOUD_DB_NAME};" | |||||
| mysql --skip-ssl -u root -p${MARIADB_ROOT_PASSWORD} -h ${DB_HOST} -e "CREATE DATABASE ${NEXTCLOUD_DB_NAME};" | |||||
| check_result $? "Creating DB" | check_result $? "Creating DB" | ||||
| fi | fi | ||||
| echo "Creating User" | echo "Creating User" | ||||
| # 'IF EXISTS' for DROP USER is available from MariaDB 10.1.3 only | # 'IF EXISTS' for DROP USER is available from MariaDB 10.1.3 only | ||||
| mysql -u root -p${MARIADB_ROOT_PASSWORD} -h ${DB_HOST} -e "DROP USER ${NEXTCLOUD_DB_USER};" || echo "It seems it didn't exist" | |||||
| mysql -u root -p${MARIADB_ROOT_PASSWORD} -h ${DB_HOST} -e "CREATE USER ${NEXTCLOUD_DB_USER} IDENTIFIED BY '${NEXTCLOUD_DB_PWD}';" | |||||
| mysql --skip-ssl -u root -p${MARIADB_ROOT_PASSWORD} -h ${DB_HOST} -e "DROP USER ${NEXTCLOUD_DB_USER};" || echo "It seems it didn't exist" | |||||
| mysql --skip-ssl -u root -p${MARIADB_ROOT_PASSWORD} -h ${DB_HOST} -e "CREATE USER ${NEXTCLOUD_DB_USER} IDENTIFIED BY '${NEXTCLOUD_DB_PWD}';" | |||||
| check_result $? "Creating User" | check_result $? "Creating User" | ||||
| mysql -u root -p${MARIADB_ROOT_PASSWORD} -h ${DB_HOST} -e "GRANT ALL ON ${NEXTCLOUD_DB_NAME}.* TO ${NEXTCLOUD_DB_USER};" | |||||
| mysql --skip-ssl -u root -p${MARIADB_ROOT_PASSWORD} -h ${DB_HOST} -e "GRANT ALL ON ${NEXTCLOUD_DB_NAME}.* TO ${NEXTCLOUD_DB_USER};" | |||||
| check_result $? "Granting permissions" | check_result $? "Granting permissions" | ||||
| mysql -u root -p${MARIADB_ROOT_PASSWORD} -h ${DB_HOST} -e "FLUSH PRIVILEGES;" | |||||
| mysql --skip-ssl -u root -p${MARIADB_ROOT_PASSWORD} -h ${DB_HOST} -e "FLUSH PRIVILEGES;" | |||||
| check_result $? "Flushing privileges" | check_result $? "Flushing privileges" | ||||
| unset MARIADB_ROOT_PASSWORD | unset MARIADB_ROOT_PASSWORD | ||||
| # DB Backup | # DB Backup | ||||
| if [ ! -z "${DB_EXISTS}" -a ! -z "${NEXTCLOUD_DB_BACKUP}" -a -f "${NEXTCLOUD_DB_BACKUP}" ]; then | if [ ! -z "${DB_EXISTS}" -a ! -z "${NEXTCLOUD_DB_BACKUP}" -a -f "${NEXTCLOUD_DB_BACKUP}" ]; then | ||||
| echo "Restoring DB Backup..." | echo "Restoring DB Backup..." | ||||
| mysql -u ${NEXTCLOUD_DB_USER} -p${NEXTCLOUD_DB_PWD} -D ${NEXTCLOUD_DB_NAME} -h ${DB_HOST} < ${NEXTCLOUD_DB_BACKUP}; | |||||
| mysql --skip-ssl -u ${NEXTCLOUD_DB_USER} -p${NEXTCLOUD_DB_PWD} -D ${NEXTCLOUD_DB_NAME} -h ${DB_HOST} < ${NEXTCLOUD_DB_BACKUP}; | |||||
| check_result $? "Restoring DB" | check_result $? "Restoring DB" | ||||
| # empty oc_users table | |||||
| # TODO: explain why | |||||
| echo "Removing users" | |||||
| mysql --skip-ssl -u ${NEXTCLOUD_DB_USER} -p${NEXTCLOUD_DB_PWD} -D ${NEXTCLOUD_DB_NAME} -h ${DB_HOST} -e "TRUNCATE TABLE oc_users;" || echo "Truncate oc_users failed"; | |||||
| # check_result $? "Truncating Users table" | |||||
| mysql --skip-ssl -u ${NEXTCLOUD_DB_USER} -p${NEXTCLOUD_DB_PWD} -D ${NEXTCLOUD_DB_NAME} -h ${DB_HOST} -e "TRUNCATE TABLE oc_ldap_user_mapping;" || echo "Truncate oc_ldap_user_mapping failed"; | |||||
| #check_result $? "Truncating LDAP Users mapping table" | |||||
| fi | fi | ||||
| # empty oc_users table | |||||
| echo "Removing users" | |||||
| mysql -u ${NEXTCLOUD_DB_USER} -p${NEXTCLOUD_DB_PWD} -D ${NEXTCLOUD_DB_NAME} -h ${DB_HOST} -e "TRUNCATE TABLE oc_users;"; | |||||
| check_result $? "Truncating Users table" | |||||
| mysql -u ${NEXTCLOUD_DB_USER} -p${NEXTCLOUD_DB_PWD} -D ${NEXTCLOUD_DB_NAME} -h ${DB_HOST} -e "TRUNCATE TABLE oc_ldap_user_mapping;"; | |||||
| check_result $? "Truncating LDAP Users mapping table" | |||||
| # ### Nextcloud config file ### | # ### Nextcloud config file ### | ||||