| Module | Sequel::Plugins::Schema::ClassMethods |
| In: |
lib/sequel/plugins/schema.rb
|
Creates table, using the column information from set_schema.
# File lib/sequel/plugins/schema.rb, line 6
6: def create_table
7: db.create_table(table_name, :generator=>@schema)
8: @db_schema = get_db_schema(true)
9: columns
10: end
Drops the table if it exists and then runs create_table. Should probably not be used except in testing.
# File lib/sequel/plugins/schema.rb, line 14
14: def create_table!
15: drop_table rescue nil
16: create_table
17: end
Drops table.
# File lib/sequel/plugins/schema.rb, line 20
20: def drop_table
21: db.drop_table(table_name)
22: end
Returns table schema created with set_schema for direct descendant of Model. Does not retreive schema information from the database, see db_schema if you want that.
# File lib/sequel/plugins/schema.rb, line 27
27: def schema
28: @schema || (superclass.schema unless superclass == Model)
29: end
Defines a table schema (see Schema::Generator for more information).
This is only needed if you want to use the create_table/create_table! methods. Will also set the dataset if you provide a name, as well as setting the primary key if you defined one in the passed block.
In general, it is a better idea to use migrations for production code, as migrations allow changes to existing schema. set_schema is mostly useful for test code or simple examples.
# File lib/sequel/plugins/schema.rb, line 40
40: def set_schema(name = nil, &block)
41: set_dataset(db[name]) if name
42: @schema = Sequel::Schema::Generator.new(db, &block)
43: set_primary_key(@schema.primary_key_name) if @schema.primary_key_name
44: end