diff --git a/tools/migrations/migrate_from_symfony_3_to_5.sh b/tools/migrations/migrate_from_symfony_3_to_5.sh
index 1374904c10b71d80334b9119122dc4af03a07e76..e0c26abe62cfaf5dc80d0f32cbf424eb92b11e4e 100755
--- a/tools/migrations/migrate_from_symfony_3_to_5.sh
+++ b/tools/migrations/migrate_from_symfony_3_to_5.sh
@@ -21,11 +21,23 @@ if [ "$backup" -ne 0 ]; then
     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
+    ret=$?
+    if [ $ret -ne 0 ]; then
+        echo "Backup failed, aborting"
+        exit $ret
+    fi
     echo "Backup done"
 else
     echo "A previous backup exists, skipping backup step"
 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
 #
@@ -38,9 +50,9 @@ docker-compose exec memorekall-member composer reload-db
 
 # Columns renaming in the form pattern/replacement/sedopts
 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
-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"
 echo "SET foreign_key_checks = 0;" > $$.sql
@@ -57,12 +69,9 @@ 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
-
-#
-# Step 4 Ensure entity are stored in JSON format and not array
-#
-