Module ActiveRecord::ConnectionAdapters::SchemaStatements
In: lib/cms/extensions/active_record/connection_adapters/abstract/schema_statements.rb

Methods

Public Instance methods

[Source]

    # File lib/cms/extensions/active_record/connection_adapters/abstract/schema_statements.rb, line 53
53:       def create_table_from_definition(table_name, options, table_definition)
54:         if options[:force] && table_exists?(table_name)
55:          drop_table(table_name, options)
56:         end
57: 
58:         create_sql = "CREATE#{' TEMPORARY' if options[:temporary]} TABLE "
59:         create_sql << "#{quote_table_name(table_name)} ("
60:         create_sql << table_definition.to_sql
61:         create_sql << ") #{options[:options]}"
62:         execute create_sql            
63:       end

[Source]

    # File lib/cms/extensions/active_record/connection_adapters/abstract/schema_statements.rb, line 4
 4:       def create_versioned_table(table_name, options={}, &block)
 5: 
 6:         #Do the primary table
 7:         t = TableDefinition.new(self)
 8:         t.primary_key(options[:primary_key] || Base.get_primary_key(table_name)) unless options[:id] == false
 9: 
10:         t.integer :version
11:         t.integer :lock_version, :default => 0
12:         yield t
13: 
14:         # Blocks currently must have a name column, otherwise the UI fails in several places.
15:         # Some migrations may have already specified a name attribute, so we don't want to overwrite it here.
16:         t.string :name unless t[:name]
17: 
18:         t.boolean :published, :default => false
19:         t.boolean :deleted, :default => false
20:         t.boolean :archived, :default => false
21:         t.integer :created_by_id
22:         t.integer :updated_by_id
23:         t.timestamps
24: 
25:         
26:         create_table_from_definition(table_name, options, t)
27: 
28:         #Do the versions table
29:         vt = TableDefinition.new(self)
30:         vt.primary_key(options[:primary_key] || Base.get_primary_key(table_name)) unless options[:id] == false
31: 
32:         vt.integer "#{table_name.to_s.singularize}_id".to_sym
33:         vt.integer :version
34:         yield vt
35: 
36:         # Create implicit name column in version table as well.
37:         vt.string :name unless vt[:name]
38: 
39:         vt.boolean :published, :default => false
40:         vt.boolean :deleted, :default => false
41:         vt.boolean :archived, :default => false        
42:         vt.string :version_comment
43:         vt.integer :created_by_id
44:         vt.integer :updated_by_id
45:         vt.timestamps            
46:         
47: 
48:         
49:         create_table_from_definition("#{table_name.to_s.singularize}_versions".to_sym, options, vt)
50:         
51:       end

[Source]

    # File lib/cms/extensions/active_record/connection_adapters/abstract/schema_statements.rb, line 65
65:       def drop_versioned_table(table_name)
66:         drop_table "#{table_name.singularize}_versions".to_sym
67:         drop_table table_name
68:       end

[Validate]