Je souhaite mettre à niveau plusieurs schémas sur un système hérité s'exécutant sur une seule instance mysql.Meilleure stratégie pour exécuter plusieurs migrations de voies de migration en parallèle
En développement, j'ai ~ 10 schémas, alors qu'en production j'ai environ 100 schémas.
Dans le développement que j'utilisais simple boucle bash pour démarrer une flyway migrate
pour chaque schéma:
schemas=$(echo "SET SESSION group_concat_max_len=8192; select GROUP_CONCAT(SCHEMA_NAME SEPARATOR ' ') from information_schema.SCHEMATA where SCHEMA_NAME like 'FOO_%'" | mysql -h$DB_URL -P$DB_PORT -u$DB_USER -p$DB_PASSWORD -sN)
for schema in $schemas; do
echo "Starting Migration for : $schema"
flyway -configFile=src/flyway.conf -user=$DB_USER -password=$DB_PASSWORD -url="jdbc:mysql://$DB_URL:$DB_PORT" -schemas=$schema -locations=filesystem:src/schema/ migrate 2>&1 | tee $schema.log &
done
Cette stratégie fonctionnait très bien dans dev. En production, je mors rapidement le bélier du coureur gitlab qui court le flyway migrate
. À votre avis, quelle serait la meilleure façon de réaliser la migration de la base de données aussi vite que possible sans pour autant sortir le bélier de la base de données?