Method: Sequel::Database#create_table
- Defined in:
- lib/sequel/database/schema_methods.rb
#create_table(name, options = OPTS, &block) ⇒ Object
Creates a table with the columns given in the provided block:
DB.create_table :posts do
primary_key :id
column :title, :text
String :content
index :title
end
General options:
- :as
-
Create the table using the value, which should be either a dataset or a literal SQL string. If this option is used, a block should not be given to the method.
- :ignore_index_errors
-
Ignore any errors when creating indexes.
- :temp
-
Create the table as a temporary table.
MySQL specific options:
- :charset
-
The character set to use for the table.
- :collate
-
The collation to use for the table.
- :engine
-
The table engine to use for the table.
PostgreSQL specific options:
- :on_commit
-
Either :preserve_rows (default), :drop or :delete_rows. Should only be specified when creating a temporary table.
- :foreign
-
Create a foreign table. The value should be the name of the foreign server that was specified in CREATE SERVER.
- :inherits
-
Inherit from a different table. An array can be specified to inherit from multiple tables.
- :unlogged
-
Create the table as an unlogged table.
- :options
-
The OPTIONS clause to use for foreign tables. Should be a hash where keys are option names and values are option values. Note that option names are unquoted, so you should not use untrusted keys.
See Schema::Generator and the “Schema Modification” guide.
189 190 191 192 193 194 195 196 197 198 199 200 201 |
# File 'lib/sequel/database/schema_methods.rb', line 189 def create_table(name, =OPTS, &block) remove_cached_schema(name) = {:generator=>} if .is_a?(Schema::CreateTableGenerator) if sql = [:as] raise(Error, "can't provide both :as option and block to create_table") if block create_table_as(name, sql, ) else generator = [:generator] || create_table_generator(&block) create_table_from_generator(name, generator, ) create_table_indexes_from_generator(name, generator, ) nil end end |