FIX: Check all migrations for dropped columns/tables during restore

Previously only post-deploy migrations were being checked for DROPPED_(COLUMNS|TABLES) constants
This commit is contained in:
David Taylor 2021-06-23 16:37:07 +01:00
parent 7e5ad9aaaa
commit d2c5165052
2 changed files with 9 additions and 2 deletions

View File

@ -51,6 +51,11 @@ module BackupRestore
end
end
def self.core_migration_files
Dir[Rails.root.join(Migration::SafeMigrate.post_migration_path, "**/*.rb")] +
Dir[Rails.root.join("db/migrate/*.rb")]
end
protected
def restore_dump
@ -154,7 +159,7 @@ module BackupRestore
@created_functions_for_table_columns = []
all_readonly_table_columns = []
Dir[Rails.root.join(Migration::SafeMigrate.post_migration_path, "**/*.rb")].each do |path|
DatabaseRestorer.core_migration_files.each do |path|
require path
class_name = File.basename(path, ".rb").sub(/^\d+_/, "").camelize
migration_class = class_name.constantize

View File

@ -200,7 +200,9 @@ describe BackupRestore::DatabaseRestorer do
context "readonly functions" do
before do
Migration::SafeMigrate.stubs(:post_migration_path).returns("spec/fixtures/db/post_migrate/drop_column")
BackupRestore::DatabaseRestorer.stubs(:core_migration_files).returns(
Dir[Rails.root.join("spec/fixtures/db/post_migrate/drop_column/**/*.rb")]
)
end
it "doesn't try to drop function when no functions have been created" do