【发布时间】:2018-01-30 23:31:13
【问题描述】:
我想升级在单个 mysql 实例上运行的旧系统上的多个模式。
在开发中我有大约 10 个模式,而在生产中我有大约 100 个模式。
在开发过程中,我使用一个简单的 bash 循环为每个模式启动一个 flyway migrate:
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
这个策略在开发中运行良好。在生产中,我很快将运行 flyway migrate 的 gitlab 运行器的 ram 最大化。
在您看来,在不耗尽内存的情况下尽快实现数据库迁移的最佳方法是什么?
【问题讨论】:
标签: flyway