Skip to content
Snippets Groups Projects
Verified Commit 3256299f authored by Sebastien's avatar Sebastien Committed by David Beniamine
Browse files

fix migration from symfony 3 to 5 script

parent 021d8270
No related branches found
No related tags found
1 merge request!46Tuleap 88 db migration
#!/bin/bash
BASE_DIR=$(realpath "$(dirname $0)/../..")
#!/usr/bin/env bash
BASE_DIR=$PWD
source $BASE_DIR/.env
BACKUP_DB="${MYSQL_DATABASE}_BACKUP_3_TO_5"
......@@ -18,9 +18,7 @@ if [ "$backup" -ne 0 ]; then
echo "Creating DB $BACKUP_DB"
$mysql_cmd -e "CREATE DATABASE $BACKUP_DB"
echo "Saving $MYSQL_DATABASE to $BACKUP_DB"
docker-compose exec mysql mysqldump -u root -p$MYSQL_ROOT_PASSWORD $MYSQL_DATABASE |\
grep -v Warning |
docker exec -i $(docker-compose ps -q mysql) mysql -u root -p$MYSQL_ROOT_PASSWORD $BACKUP_DB
docker-compose exec -e BACKUP_DB=$BACKUP_DB mysql bash -c 'mysqldump -u root -p$MYSQL_ROOT_PASSWORD $MYSQL_DATABASE | grep -v Warning | mysql -u root -p$MYSQL_ROOT_PASSWORD $BACKUP_DB'
ret=$?
if [ $ret -ne 0 ]; then
echo "Backup failed, aborting"
......@@ -54,13 +52,11 @@ COLUMNS_REPLACEMENTS[user]="roles,\(.*\)credential_expired/'[\"USER_ROLE\"]' as
# Old capsule table does not have a password field
COLUMNS_REPLACEMENTS[capsule]='password/SUBSTRING(edition_link, -40) as password/'
TABLES="user reset_password_request capsule doctrine_migration_versions editeur_capsule"
TABLES="user capsule editeur_capsule"
echo "SET foreign_key_checks = 0;" > $$.sql
for table in $TABLES; do
COLUMNS=$($mysql_cmd --batch --disable-column-names \
-e "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '$table' AND TABLE_SCHEMA='$MYSQL_DATABASE'" |\
grep -v "Warning" | tr '\r\n' ', ' | sed 's/, $//'
)
COLUMNS=$(docker-compose exec -T -e TABLE=$table mysql bash -c 'mysql -u root -p$MYSQL_ROOT_PASSWORD --batch --disable-column-names -e "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = \"$TABLE\" AND TABLE_SCHEMA=\"$MYSQL_DATABASE\"" | grep -v "Warning" | tr -d "\r" | tr "\n" ", " | sed "s/,\$//"')
if [ ! -z "${COLUMNS_REPLACEMENTS[$table]}" ]; then
COLUMNS_OLD=$(echo $COLUMNS | sed "s/${COLUMNS_REPLACEMENTS[$table]}")
else
......@@ -69,9 +65,10 @@ for table in $TABLES; do
echo "DELETE FROM $MYSQL_DATABASE.$table;" >> $$.sql
echo "INSERT INTO $MYSQL_DATABASE.$table ($COLUMNS) SELECT $COLUMNS_OLD FROM $BACKUP_DB.$table;" >> $$.sql
done
# Ensure that dt_maj is not NULL
echo "UPDATE $MYSQL_DATABASE.capsule SET dt_maj=dt_crea WHERE dt_maj IS NULL;" >> $$.sql
echo "SET foreign_key_checks = 1;" >> $$.sql
cat $$.sql | docker exec -i $(docker-compose ps -q mysql) mysql -u root -p$MYSQL_ROOT_PASSWORD
echo "All done"
rm $$.sql
# rm $$.sql
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment