이 버그에 대해 시간을 좀 들였고, 조사 결과를 공유드리고자 합니다. 기본적으로 이미 말씀하신 내용을 모두 확인했고, 복원 프로세스는 다음과 같은 구조입니다:
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'))
해킹적인 해결책이라면, RailsMultisite::ConnectionManagement.current_db 대신 여전히 올바른 이름을 포함하고 있는 @current_db를 여기에서 사용하는 것입니다. 하지만 이는 reconnect_database가 제대로 작동하지 않는 근본적인 문제를 해결하지는 못합니다.
문제를 찾기 위해 더 깊이 파고들어야 합니다.