method
create_database
v7.2.3 -
Show latest stable
- Class:
ActiveRecord::ConnectionAdapters::AbstractMysqlAdapter
create_database(name, options = {})public
Create a new MySQL database with optional :charset and :collation. Charset defaults to utf8mb4.
Example:
create_database 'charset_test', charset: 'latin1', collation: 'latin1_bin' create_database 'matt_development' create_database 'matt_development', charset: :big5
# File activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb, line 287
def create_database(name, options = {})
if options[:collation]
execute "CREATE DATABASE #{quote_table_name(name)} DEFAULT COLLATE #{quote_table_name(options[:collation])}"
elsif options[:charset]
execute "CREATE DATABASE #{quote_table_name(name)} DEFAULT CHARACTER SET #{quote_table_name(options[:charset])}"
elsif row_format_dynamic_by_default?
execute "CREATE DATABASE #{quote_table_name(name)} DEFAULT CHARACTER SET `utf8mb4`"
else
raise "Configure a supported :charset and ensure innodb_large_prefix is enabled to support indexes on varchar(255) string columns."
end
end Related methods
- Instance methods
- add_index
- add_sql_comment!
- begin_db_transaction
- begin_isolated_db_transaction
- build_change_column_default_definition
- build_change_column_definition
- build_create_index_definition
- build_insert_sql
- case_sensitive_comparison
- change_column
- change_column_comment
- change_column_default
- change_column_null
- change_table_comment
- charset
- check_constraints
- check_version
- collation
- columns_for_distinct
- commit_db_transaction
- create_database
- current_database
- default_index_type?
- disable_referential_integrity
- drop_database
- drop_table
- each_hash
- empty_insert_statement_value
- error_number
- exec_restart_db_transaction
- exec_rollback_db_transaction
- execute_and_free
- foreign_keys
- get_advisory_lock
- get_database_version
- index_algorithms
- mariadb?
- native_database_types
- primary_keys
- quote_string
- recreate_database
- release_advisory_lock
- rename_column
- rename_index
- rename_table
- return_value_after_insert?
- show_variable
- strict_mode?
- supports_advisory_locks?
- supports_bulk_alter?
- supports_check_constraints?
- supports_common_table_expressions?
- supports_datetime_with_precision?
- supports_explain?
- supports_expression_index?
- supports_foreign_keys?
- supports_index_sort_order?
- supports_indexes_in_create?
- supports_insert_on_duplicate_skip?
- supports_insert_on_duplicate_update?
- supports_insert_returning?
- supports_optimizer_hints?
- supports_restart_db_transaction?
- supports_transaction_isolation?
- supports_views?
- supports_virtual_columns?
- table_comment
- table_options
- Class methods
- dbconsole
- emulate_booleans
- extended_type_map
- Private methods
-
extract_precision -
initialize_type_map -
register_integer_type -
add_index_for_alter -
arel_visitor -
build_statement_pool -
can_perform_case_insensitive_comparison_for? -
change_column_for_alter -
column_definitions -
configure_connection -
create_table_info -
extended_type_map_key -
handle_warnings -
mismatched_foreign_key -
mismatched_foreign_key_details -
remove_index_for_alter -
rename_column_for_alter -
strip_whitespace_characters -
supports_insert_raw_alias_syntax? -
supports_rename_column? -
supports_rename_index? -
sync_timezone_changes -
translate_exception -
version_string -
warning_ignored?