Skip to content
Snippets Groups Projects
Verified Commit 47707ce3 authored by David Beniamine's avatar David Beniamine
Browse files

FIX password and force dt_maj not null

parent 62d491bc
No related branches found
No related tags found
1 merge request!46Tuleap 88 db migration
...@@ -21,11 +21,23 @@ if [ "$backup" -ne 0 ]; then ...@@ -21,11 +21,23 @@ if [ "$backup" -ne 0 ]; then
docker-compose exec mysql mysqldump -u root -p$MYSQL_ROOT_PASSWORD $MYSQL_DATABASE |\ docker-compose exec mysql mysqldump -u root -p$MYSQL_ROOT_PASSWORD $MYSQL_DATABASE |\
grep -v Warning | grep -v Warning |
docker exec -i $(docker-compose ps -q mysql) mysql -u root -p$MYSQL_ROOT_PASSWORD $BACKUP_DB docker exec -i $(docker-compose ps -q mysql) mysql -u root -p$MYSQL_ROOT_PASSWORD $BACKUP_DB
ret=$?
if [ $ret -ne 0 ]; then
echo "Backup failed, aborting"
exit $ret
fi
echo "Backup done" echo "Backup done"
else else
echo "A previous backup exists, skipping backup step" echo "A previous backup exists, skipping backup step"
fi fi
echo -e "Please check the integrity of the backup databse $BACKUP_DB then type 'yes' to continue. \nThe next step will erase your database if the backup is incomplete you WILL LOOSE ALL YOUR DATA\n"
read next
if [ "$next" != 'yes' ]; then
echo "Aborting as you did not type yes"
exit 1
fi
# #
# Step 2 Reload db with initial data # Step 2 Reload db with initial data
# #
...@@ -38,9 +50,9 @@ docker-compose exec memorekall-member composer reload-db ...@@ -38,9 +50,9 @@ docker-compose exec memorekall-member composer reload-db
# Columns renaming in the form pattern/replacement/sedopts # Columns renaming in the form pattern/replacement/sedopts
declare -A COLUMNS_REPLACEMENTS declare -A COLUMNS_REPLACEMENTS
COLUMNS_REPLACEMENTS[user]='credential_expired/credentials_expired as credential_expired/' COLUMNS_REPLACEMENTS[user]="roles,\(.*\)credential_expired/'[\"USER_ROLE\"]' as roles,\1credentials_expired as credential_expired/"
# Old capsule table does not have a password field # Old capsule table does not have a password field
COLUMNS_REPLACEMENTS[capsule]='password/NULL as password/' COLUMNS_REPLACEMENTS[capsule]='password/SUBSTRING(edition_link, -40) as password/'
TABLES="user reset_password_request capsule doctrine_migration_versions editeur_capsule" TABLES="user reset_password_request capsule doctrine_migration_versions editeur_capsule"
echo "SET foreign_key_checks = 0;" > $$.sql echo "SET foreign_key_checks = 0;" > $$.sql
...@@ -57,12 +69,9 @@ for table in $TABLES; do ...@@ -57,12 +69,9 @@ for table in $TABLES; do
echo "DELETE FROM $MYSQL_DATABASE.$table;" >> $$.sql echo "DELETE FROM $MYSQL_DATABASE.$table;" >> $$.sql
echo "INSERT INTO $MYSQL_DATABASE.$table ($COLUMNS) SELECT $COLUMNS_OLD FROM $BACKUP_DB.$table;" >> $$.sql echo "INSERT INTO $MYSQL_DATABASE.$table ($COLUMNS) SELECT $COLUMNS_OLD FROM $BACKUP_DB.$table;" >> $$.sql
done 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 echo "SET foreign_key_checks = 1;" >> $$.sql
cat $$.sql | docker exec -i $(docker-compose ps -q mysql) mysql -u root -p$MYSQL_ROOT_PASSWORD cat $$.sql | docker exec -i $(docker-compose ps -q mysql) mysql -u root -p$MYSQL_ROOT_PASSWORD
echo "All done" echo "All done"
rm $$.sql rm $$.sql
#
# Step 4 Ensure entity are stored in JSON format and not array
#
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment