Browse Source

Adiciona script para clonar banco legado

Signed-off-by: Luciano Almeida <lucianoalmeida@interlegis.leg.br>
pull/1554/head
Luciano Almeida 7 years ago
parent
commit
7ecd825823
  1. 19
      sapl/legacy/scripts/migra_um_db.sh

19
sapl/legacy/scripts/migra_um_db.sh

@ -2,7 +2,8 @@
# rodar esse script na raiz do projeto
if [ $# -eq 3 ]; then
DIR=~/logs_migracao
DATE=$(date +%Y-%m-%d)
DIR=~/${DATE}_logs_migracao
mkdir -p $DIR
LOG="$DIR/$1.migracao.log"
@ -15,7 +16,16 @@ if [ $# -eq 3 ]; then
echo "--- CRIANDO BACKUP ---" | tee -a $LOG
echo >> $LOG
mysql -u $2 -p$3 -e "create database if not exists $1_copy;" && mysqldump -u $2 -p$3 $1 | mysql -u $2 -p$3 $1_copy;
EXISTE=`mysql -u $2 -p$3 -N -s -e "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = '$1_copy';"`
if [[ $EXISTE == $1_copy ]]; then
mysql -u $2 -p$3 -N -s -e "DROP DATABASE IF EXISTS $1; CREATE DATABASE $1;" && mysqldump -u $2 -p$3 $1_copy | mysql -u $2 -p$3 $1
echo "O banco legado foi restaurado" |& tee -a $LOG
elif [[ ! $EXISTE ]]; then
mysql -u $2 -p$3 -N -s -e "CREATE DATABASE $1_copy;"
mysqldump -u $2 -p$3 $1 | mysql -u $2 -p$3 $1_copy
echo "O banco de cópia $1_copy não existia e foi criado" |& tee -a $LOG
fi
echo >> $LOG
echo "--- DJANGO MIGRATE ---" | tee -a $LOG
@ -23,11 +33,14 @@ if [ $# -eq 3 ]; then
DATABASE_NAME=$1 ./manage.py migrate --settings sapl.legacy_migration_settings
echo >> $LOG
# XXX Na primeira execução desse comando aparece o erro de "Coammands out of sync"
# A solução mais rápida foi executar duas vezes seguidas pra poder migrar.
DATABASE_NAME=$1 ./manage.py migracao_25_31 -f --settings sapl.legacy_migration_settings
echo "--- MIGRACAO DE DADOS ---" | tee -a $LOG
echo >> $LOG
DATABASE_NAME=$1 ./manage.py migracao_25_31 -f --settings sapl.legacy_migration_settings |& tee -a $LOG
echo >> $LOG
else
echo "USO:"
echo " ./sapl/legacy/scripts/migra_um_db.sh [nome_database] [usuário mysql] [senha mysql]"
echo " $0 [nome_database] [usuário mysql] [senha mysql]"
fi;

Loading…
Cancel
Save