diff options
Diffstat (limited to 'activerecord/lib/active_record/tasks/postgresql_database_tasks.rb')
-rw-r--r-- | activerecord/lib/active_record/tasks/postgresql_database_tasks.rb | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/tasks/postgresql_database_tasks.rb b/activerecord/lib/active_record/tasks/postgresql_database_tasks.rb index 8acb11f75f..dc368eb97d 100644 --- a/activerecord/lib/active_record/tasks/postgresql_database_tasks.rb +++ b/activerecord/lib/active_record/tasks/postgresql_database_tasks.rb @@ -48,6 +48,18 @@ module ActiveRecord create true end + def truncate_tables(*table_names) + return if table_names.empty? + + ActiveRecord::Base.connection.disable_referential_integrity do + quoted_table_names = table_names.map do |table_name| + ActiveRecord::Base.connection.quote_table_name(table_name) + end + + ActiveRecord::Base.connection.execute "TRUNCATE TABLE #{quoted_table_names.join(", ")}" + end + end + def structure_dump(filename, extra_flags) set_psql_env |