Module: SequelColumnTypes

Included in:
Sequel::Schema::AlterTableGenerator, Sequel::Schema::CreateTableGenerator
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)

Instance Method Details

- (Object) apply_mtime_columns(create_time = true)



139
140
141
142
143
144
145
146
147
148
149
# File 'common/db/db_migrator.rb', line 139

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

- (Object) apply_name_columns



128
129
130
131
132
133
134
135
136
# File 'common/db/db_migrator.rb', line 128

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

- (Object) BlobField(field, opts = {})



112
113
114
# File 'common/db/db_migrator.rb', line 112

def BlobField(field, opts = {})
  create_column(*ColumnDefs.blobField(field, opts))
end

- (Object) create_column(*column_def)



84
85
86
87
88
89
90
# File 'common/db/db_migrator.rb', line 84

def create_column(*column_def)
  if self.respond_to?(:column)
    column(*column_def)
  else
    add_column(*column_def)
  end
end

- (Object) DynamicEnum(field, opts = {})



122
123
124
125
# File 'common/db/db_migrator.rb', line 122

def DynamicEnum(field, opts = {})
  Integer field, opts
  foreign_key([field], :enumeration_value, :key => :id)
end

- (Object) HalfLongString(field, opts = {})



102
103
104
# File 'common/db/db_migrator.rb', line 102

def HalfLongString(field, opts = {})
  create_column(*ColumnDefs.halfLongString(field, opts))
end

- (Object) LongString(field, opts = {})



98
99
100
# File 'common/db/db_migrator.rb', line 98

def LongString(field, opts = {})
  create_column(*ColumnDefs.longString(field, opts))
end

- (Object) MediumBlobField(field, opts = {})



117
118
119
# File 'common/db/db_migrator.rb', line 117

def MediumBlobField(field, opts = {})
  create_column(*ColumnDefs.mediumBlobField(field, opts))
end

- (Object) TextBlobField(field, opts = {})



107
108
109
# File 'common/db/db_migrator.rb', line 107

def TextBlobField(field, opts = {})
  create_column(*ColumnDefs.textBlobField(field, opts))
end

- (Object) TextField(field, opts = {})



93
94
95
# File 'common/db/db_migrator.rb', line 93

def TextField(field, opts = {})
  create_column(*ColumnDefs.textField(field, opts))
end