diff options
Diffstat (limited to 'spec/support/migrations_helpers.rb')
-rw-r--r-- | spec/support/migrations_helpers.rb | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/spec/support/migrations_helpers.rb b/spec/support/migrations_helpers.rb deleted file mode 100644 index 6bf976a2cf9..00000000000 --- a/spec/support/migrations_helpers.rb +++ /dev/null @@ -1,89 +0,0 @@ -module MigrationsHelpers - def table(name) - Class.new(ActiveRecord::Base) { self.table_name = name } - end - - def migrations_paths - ActiveRecord::Migrator.migrations_paths - end - - def table_exists?(name) - ActiveRecord::Base.connection.table_exists?(name) - end - - def migrations - ActiveRecord::Migrator.migrations(migrations_paths) - end - - def clear_schema_cache! - ActiveRecord::Base.connection_pool.connections.each do |conn| - conn.schema_cache.clear! - end - end - - def reset_column_in_all_models - clear_schema_cache! - - # Reset column information for the most offending classes **after** we - # migrated the schema up, otherwise, column information could be - # outdated. We have a separate method for this so we can override it in EE. - ActiveRecord::Base.descendants.each(&method(:reset_column_information)) - - # Without that, we get errors because of missing attributes, e.g. - # super: no superclass method `elasticsearch_indexing' for #<ApplicationSetting:0x00007f85628508d8> - ApplicationSetting.define_attribute_methods - end - - def reset_column_information(klass) - klass.reset_column_information - end - - def previous_migration - migrations.each_cons(2) do |previous, migration| - break previous if migration.name == described_class.name - end - end - - def migration_schema_version - metadata_schema = self.class.metadata[:schema] - - if metadata_schema == :latest - migrations.last.version - else - metadata_schema || previous_migration.version - end - end - - def schema_migrate_down! - disable_migrations_output do - ActiveRecord::Migrator.migrate(migrations_paths, - migration_schema_version) - end - - reset_column_in_all_models - end - - def schema_migrate_up! - reset_column_in_all_models - - disable_migrations_output do - ActiveRecord::Migrator.migrate(migrations_paths) - end - - reset_column_in_all_models - end - - def disable_migrations_output - ActiveRecord::Migration.verbose = false - - yield - ensure - ActiveRecord::Migration.verbose = true - end - - def migrate! - ActiveRecord::Migrator.up(migrations_paths) do |migration| - migration.name == described_class.name - end - end -end |