mirror of
https://github.com/discourse/discourse.git
synced 2025-02-21 01:25:53 +08:00

Simplified flow of restore is like that ``` migrate_database reconnect extract_uploads ``` Problem with incorrect current database started with this fix https://github.com/discourse/discourse/commit/025d4ee91f4 Dump task is reconnecting to default database https://github.com/rails/rails/blob/master/activerecord/lib/active_record/railties/databases.rake#L429 And then, we are trying to reconnect to the original database with that code: ``` def reconnect_database log "Reconnecting to the database..." RailsMultisite::ConnectionManagement::establish_connection(db: @current_db) end ``` This reconnect is not switching us back to correct database because of that check https://github.com/discourse/rails_multisite/blob/master/lib/rails_multisite/connection_management.rb#L181 Basically, it finds existing handler and it thinks that we are connected to correct DB and this step can be skipped. To solve it, we can reload RailsMultisite::ConnectionManagement which creates a new instance of that class https://github.com/discourse/rails_multisite/blob/master/lib/rails_multisite/connection_management.rb#L38