mirror of
https://github.com/discourse/discourse.git
synced 2024-12-01 12:24:37 +08:00
07ff21d045
Database dumps sometimes reference functions in the `discourse_functions` schema. It's possible that some of these functions have been dropped in a newer version of Discourse. In that case, restoring an older backup will fail with a `ERROR: function discourse_functions.something_something() does not exist` error. The restore functionality contains a workaround for that problem, but it didn't work with functions created in plugin migrations. This commit adds support for temporarily creating missing `discourse_functions` from plugins. And it adds a simple check if the DB migration file even contains the required `DROPPED_TABLES` or `DROPPED_COLUMNS` constant. We don't need to create an instance of the DB migration class unless one of those constants is used. This makes the restore slightly faster and works around a problem with migrations that execute without `up` or `down` methods (e.g. `BackfillChatChannelAndThreadLastMessageIdsPostMigrate`). |
||
---|---|---|
.. | ||
backup_file_handler.rb | ||
backup_store.rb | ||
backuper.rb | ||
database_restorer.rb | ||
factory.rb | ||
local_backup_store.rb | ||
logger.rb | ||
meta_data_handler.rb | ||
restorer.rb | ||
s3_backup_store.rb | ||
system_interface.rb | ||
uploads_restorer.rb |