db-update.sh 2.59 KB
#!/bin/bash

# Pour Mac OS recent (>=10.10, Yosemite), la syntaxe du SED est differente
# Il faut donc exécuter ce script de la manière suivante :
# ./macos-db-update.sh <ce_script.sh>


if [ ! -f ../../config/app.php ] ; then
	echo "Vous devez executer ce script depuis le dossier database/update/"
	exit 1
fi

# Ce script attend un argument $1 qui est le nom du script sql à exécuter
# Exit if no argument
[[ $1 == '' ]] && exit 1
sqlscript=$1
#echo $sqlscript


function abort() {
	echo "******************************************************"
	echo "!!! Script $0 aborté à cause d'une erreur d'exécution !!!"	
	echo "******************************************************"
	exit 1
}


# Exit si ce script n'existe pas
#if [[ ! -f ./script_sql/$sqlscript ]] ; then
if [[ ! -f ./$sqlscript ]] ; then
	#echo "Le script SQL script_sql/$sqlscript n'existe pas" 
	echo "Le script SQL $sqlscript n'existe pas" 
	abort
fi


# Nom du script sql, sans l'extension .sql
sqlscript_name=${sqlscript%%.*}
#echo $sqlscript_name






# Get login, pass, dbname, and hostname
username=$(grep "/\*d\*/'username'" ../../config/app.php | cut -d"'" -f4) || abort
password=$(grep "/\*d\*/'password'" ../../config/app.php | cut -d"'" -f4) || abort
database=$(grep "/\*d\*/'database'" ../../config/app.php | cut -d"'" -f4) || abort
host=$(grep "/\*d\*/'host'" ../../config/app.php | cut -d"'" -f4) || abort


#cp -p ./script_sql/db-update-2016-07-01-irap.sql ./script_sql/db-update-2016-07-01-irap-build.sql
#cp -p ./script_sql/$sqlscript.sql ./script_sql/$sqlscript-build.sql || abort
#cp -p ./script_sql/$sqlscript_name.sql ./script_sql/$sqlscript_name-build.sql || abort
cp -p ./$sqlscript_name.sql ./$sqlscript_name-build.sql || abort

# Execute sql update script
#sed -e "s/database/$database/" -i ./script_sql/$sqlscript-build.sql || abort
sed -e "s/database/$database/" -i ./$sqlscript_name-build.sql || abort

#mysql --user=$username --password=$password -h $host < ./script_sql/$sqlscript_name-build.sql || abort
mysql --user=$username --password=$password -h $host < ./$sqlscript_name-build.sql || abort

# Delete temporary file and cakephp cache (-f avoids warning if no file)
#rm -f ./script_sql/$sqlscript_name-build.sql
rm -f ./$sqlscript_name-build.sql
sudo rm -f ../../tmp/cache/models/*
sudo rm -f ../../tmp/cache/persistent/*

# Faire ca aussi si ca suffit pas...
#sudo chmod -R 777 ../../tmp
#sudo chmod -R 777 ../../vendor
#sudo chmod -R 777 ../../webroot


# PLUGIN update
# Installation plugin cakephp-dompdf
# (on va a la racine du projet)
#cd ../../
#php composer.phar require daoandco/cakephp-dompdf
#bin/cake plugin assets symlink
#cd -