Method: ActiveRecord::ConnectionAdapters::AbstractMysqlAdapter#drop_table
- Defined in:
- lib/active_record/connection_adapters/abstract_mysql_adapter.rb
#drop_table(*table_names, **options) ⇒ Object
Drops a table or tables from the database.
:force-
Set to
:cascadeto drop dependent objects as well. Defaults to false. :if_exists-
Set to
trueto only drop the table if it exists. Defaults to false. :temporary-
Set to
trueto drop temporary table. Defaults to false.
Although this command ignores most options and the block if one is given, it can be helpful to provide these in a migration’s change method so it can be reverted. In that case, options and the block will be used by #create_table except if you provide more than one table which is not supported.
362 363 364 365 |
# File 'lib/active_record/connection_adapters/abstract_mysql_adapter.rb', line 362 def drop_table(*table_names, **) table_names.each { |table_name| schema_cache.clear_data_source_cache!(table_name.to_s) } execute "DROP#{' TEMPORARY' if [:temporary]} TABLE#{' IF EXISTS' if [:if_exists]} #{table_names.map { |table_name| quote_table_name(table_name) }.join(', ')}#{' CASCADE' if [:force] == :cascade}" end |