namespace :prune do
desc "An overridable environment for rails_prune gem" task environment: [:environment] do abort "[ERROR] Cannot prune #{Rails.env} environment." if Rails.env.production? end
end
namespace :db do
desc "Truncate the database (from rails_prune gem)" task prune: ["prune:environment"] do Rails.application.eager_load! connection = ActiveRecord::Base.connection quoted_table_names = (ActiveRecord::Base.descendants - [ActiveRecord::SchemaMigration]) .select(&:table_exists?) .map(&:quoted_table_name) sql = <<-SQL.strip_heredoc TRUNCATE TABLE #{quoted_table_names.join(",")} SQL $stderr.puts sql connection.execute(sql) end
end