このバグについて時間を費やしましたので、私の調査結果をお伝えします。基本的には、あなたが既におっしゃっていたことをすべて確認しました。復元プロセスは以下の通りです:
migrate_database
reconnect_database
...
extract_uploads
問題は、マイグレーションタスクの後に reconnect_database が意図したデータベースに切り替わらず、デフォルトのものに対して動作を始めてしまうことです。
したがって、このコードは誤っています:
def extract_uploads
...
current_db_name =
RailsMultisite::ConnectionManagement.current_db # default
optimized_images_exist = File.exist?(File.join(tmp_uploads_path, 'optimized'))
応急処置的な解決策として、ここでは正しい名前を保持している @current_db を RailsMultisite::ConnectionManagement.current_db の代わりに使用することも考えられますが、これでは reconnect_database が正しく機能しない根本的な原因は解決されません。
問題の究明のため、さらに詳しく調査する必要があります。