Module: SequelColumnTypes
- Defined in:
- common/db/db_migrator.rb
Overview
Sequel uses a nice DSL for creating tables but not for altering tables. The definitions below try to provide a reasonable experience for both cases. Creation is the normal:
HalfLongString :title, :null => true
while altering is (to add a column):
HalfLongString :title
Instance Method Summary collapse
-
#apply_mtime_columns(create_time = true) ⇒ Object
-
#apply_name_columns ⇒ Object
-
#apply_parallel_name_columns ⇒ Object
-
#BlobField(field, opts = {}) ⇒ Object
-
#create_column(*column_def) ⇒ Object
-
#DynamicEnum(field, opts = {}) ⇒ Object
-
#HalfLongString(field, opts = {}) ⇒ Object
-
#LongString(field, opts = {}) ⇒ Object
-
#MediumBlobField(field, opts = {}) ⇒ Object
-
#TextBlobField(field, opts = {}) ⇒ Object
-
#TextField(field, opts = {}) ⇒ Object
Instance Method Details
#apply_mtime_columns(create_time = true) ⇒ Object
144 145 146 147 148 149 150 151 152 153 154 |
# File 'common/db/db_migrator.rb', line 144 def apply_mtime_columns(create_time = true) String :created_by String :last_modified_by if create_time DateTime :create_time, :null => false end DateTime :system_mtime, :null => false, :index => true DateTime :user_mtime, :null => false, :index => true end |
#apply_name_columns ⇒ Object
125 126 127 128 129 130 131 132 133 |
# File 'common/db/db_migrator.rb', line 125 def apply_name_columns String :authority_id, :null => true String :dates, :null => true TextField :qualifier, :null => true DynamicEnum :source_id, :null => true DynamicEnum :rules_id, :null => true TextField :sort_name, :null => false Integer :sort_name_auto_generate end |
#apply_parallel_name_columns ⇒ Object
135 136 137 138 139 140 141 142 |
# File 'common/db/db_migrator.rb', line 135 def apply_parallel_name_columns String :dates, :null => true TextField :qualifier, :null => true DynamicEnum :source_id, :null => true DynamicEnum :rules_id, :null => true TextField :sort_name, :null => false Integer :sort_name_auto_generate, :default => 1 end |
#BlobField(field, opts = {}) ⇒ Object
109 110 111 |
# File 'common/db/db_migrator.rb', line 109 def BlobField(field, opts = {}) create_column(*ColumnDefs.blobField(field, opts)) end |
#create_column(*column_def) ⇒ Object
81 82 83 84 85 86 87 |
# File 'common/db/db_migrator.rb', line 81 def create_column(*column_def) if self.respond_to?(:column) column(*column_def) else add_column(*column_def) end end |
#DynamicEnum(field, opts = {}) ⇒ Object
119 120 121 122 |
# File 'common/db/db_migrator.rb', line 119 def DynamicEnum(field, opts = {}) Integer field, opts foreign_key([field], :enumeration_value, :key => :id) end |
#HalfLongString(field, opts = {}) ⇒ Object
99 100 101 |
# File 'common/db/db_migrator.rb', line 99 def HalfLongString(field, opts = {}) create_column(*ColumnDefs.halfLongString(field, opts)) end |
#LongString(field, opts = {}) ⇒ Object
95 96 97 |
# File 'common/db/db_migrator.rb', line 95 def LongString(field, opts = {}) create_column(*ColumnDefs.longString(field, opts)) end |
#MediumBlobField(field, opts = {}) ⇒ Object
114 115 116 |
# File 'common/db/db_migrator.rb', line 114 def MediumBlobField(field, opts = {}) create_column(*ColumnDefs.mediumBlobField(field, opts)) end |
#TextBlobField(field, opts = {}) ⇒ Object
104 105 106 |
# File 'common/db/db_migrator.rb', line 104 def TextBlobField(field, opts = {}) create_column(*ColumnDefs.textBlobField(field, opts)) end |
#TextField(field, opts = {}) ⇒ Object
90 91 92 |
# File 'common/db/db_migrator.rb', line 90 def TextField(field, opts = {}) create_column(*ColumnDefs.textField(field, opts)) end |