require 'activerecord-clean-db-structure/clean_dump'
Rake::Task.enhance do
filenames = [] filenames << ENV['DB_STRUCTURE'] if ENV.key?('DB_STRUCTURE') if ActiveRecord::VERSION::MAJOR >= 6 # Based on https://github.com/rails/rails/pull/36560/files databases = ActiveRecord::Tasks::DatabaseTasks.setup_initial_database_yaml ActiveRecord::Tasks::DatabaseTasks.for_each(databases) do |spec_name| Rails.application.config.paths['db'].each do |path| filenames << File.join(path, spec_name + '_structure.sql') end end end unless filenames.present? Rails.application.config.paths['db'].each do |path| filenames << File.join(path, 'structure.sql') end end filenames.each do |filename| cleaner = ActiveRecordCleanDbStructure::CleanDump.new( File.read(filename), **Rails.application.config.activerecord_clean_db_structure ) cleaner.run File.write(filename, cleaner.dump) end
end