Ho dedicato del tempo a questo bug e volevo aggiornarti sui miei riscontri. In sostanza, ho confermato tutto ciò che hai già detto: il processo di ripristino è il seguente:
migrate_database
reconnect_database
...
extract_uploads
Il problema è che, dopo l’attività di migrazione, reconnect_database non passa al database desiderato, ma inizia a lavorare su quello predefinito.
Di conseguenza, questo codice è errato:
def extract_uploads
...
current_db_name =
RailsMultisite::ConnectionManagement.current_db # default
optimized_images_exist = File.exist?(File.join(tmp_uploads_path, 'optimized'))
Una soluzione rapida sarebbe utilizzare qui @current_db, che contiene ancora il nome corretto, al posto di RailsMultisite::ConnectionManagement.current_db, ma questo non risolve il vero motivo per cui reconnect_database non funziona correttamente.
Devo approfondire per individuare il problema.