Class: GroongaClientModel::Migration::CreateTableMigration

Inherits:
Object
  • Object
show all
Defined in:
lib/groonga_client_model/migration.rb

Instance Method Summary collapse

Constructor Details

#initialize(migration, table_name) ⇒ CreateTableMigration

Returns a new instance of CreateTableMigration.



403
404
405
406
# File 'lib/groonga_client_model/migration.rb', line 403

def initialize(migration, table_name)
  @migration = migration
  @table_name = table_name
end

Instance Method Details

#boolean(column_name, options = {}) ⇒ Object Also known as: bool



408
409
410
# File 'lib/groonga_client_model/migration.rb', line 408

def boolean(column_name, options={})
  @migration.add_column(@table_name, column_name, :bool, options)
end

#float(column_name, options = {}) ⇒ Object



425
426
427
# File 'lib/groonga_client_model/migration.rb', line 425

def float(column_name, options={})
  @migration.add_column(@table_name, column_name, :float, options)
end

#geo_point(column_name, options = {}) ⇒ Object



445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
# File 'lib/groonga_client_model/migration.rb', line 445

def geo_point(column_name, options={})
  options = options.dup
  datum = options.delete(:datum) || :wgs84
  case datum
  when :wgs84
    type = "WGS84GeoPoint"
  when :tokyo
    type = "TokyoGeoPoint"
  else
    message = "invalid geodetic datum: "
    message << "available: [:wgs84, :tokyo]: #{datum.inspect}"
    raise ArgumentError, message
  end
  @migration.add_column(@table_name, column_name, type, options)
end

#index(source_table_name, source_column_names, options = {}) ⇒ Object



480
481
482
483
484
485
486
487
488
489
490
# File 'lib/groonga_client_model/migration.rb', line 480

def index(source_table_name, source_column_names, options={})
  options = options.dup
  source_column_names = Array(source_column_names)
  column_name = options.delete(:name)
  column_name ||= [source_table_name, *source_column_names].join("_")
  @migration.add_column(@table_name,
                        column_name,
                        source_table_name,
                        options.merge(:type => :index,
                                      :sources => source_column_names))
end

#integer(column_name, options = {}) ⇒ Object



413
414
415
416
417
418
419
420
421
422
423
# File 'lib/groonga_client_model/migration.rb', line 413

def integer(column_name, options={})
  options = options.dup
  bit = options.delete(:bit) || 32
  unsigned = options.delete(:unsigned)
  if unsigned
    type = "uint#{bit}"
  else
    type = "int#{bit}"
  end
  @migration.add_column(@table_name, column_name, type, options)
end

#long_text(column_name, options = {}) ⇒ Object



441
442
443
# File 'lib/groonga_client_model/migration.rb', line 441

def long_text(column_name, options={})
  @migration.add_column(@table_name, column_name, :long_text, options)
end

#reference(column_name, reference_table_name, options = {}) ⇒ Object



469
470
471
472
473
474
# File 'lib/groonga_client_model/migration.rb', line 469

def reference(column_name, reference_table_name, options={})
  @migration.add_column(@table_name,
                        column_name,
                        reference_table_name,
                        options)
end

#short_text(column_name, options = {}) ⇒ Object



433
434
435
# File 'lib/groonga_client_model/migration.rb', line 433

def short_text(column_name, options={})
  @migration.add_column(@table_name, column_name, :short_text, options)
end

#text(column_name, options = {}) ⇒ Object



437
438
439
# File 'lib/groonga_client_model/migration.rb', line 437

def text(column_name, options={})
  @migration.add_column(@table_name, column_name, :text, options)
end

#time(column_name, options = {}) ⇒ Object



429
430
431
# File 'lib/groonga_client_model/migration.rb', line 429

def time(column_name, options={})
  @migration.add_column(@table_name, column_name, :time, options)
end

#timestampsObject



476
477
478
# File 'lib/groonga_client_model/migration.rb', line 476

def timestamps
  @migration.add_timestamp_columns(@table_name)
end

#tokyo_geo_point(column_name, options = {}) ⇒ Object



465
466
467
# File 'lib/groonga_client_model/migration.rb', line 465

def tokyo_geo_point(column_name, options={})
  geo_point(column_name, options.merge(datum: :tokyo))
end

#wgs84_geo_point(column_name, options = {}) ⇒ Object



461
462
463
# File 'lib/groonga_client_model/migration.rb', line 461

def wgs84_geo_point(column_name, options={})
  geo_point(column_name, options.merge(datum: :wgs84))
end