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.



418
419
420
421
# File 'lib/groonga_client_model/migration.rb', line 418

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

Instance Method Details

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



423
424
425
# File 'lib/groonga_client_model/migration.rb', line 423

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

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



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

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

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



460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
# File 'lib/groonga_client_model/migration.rb', line 460

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



495
496
497
498
499
500
501
502
503
504
505
# File 'lib/groonga_client_model/migration.rb', line 495

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



428
429
430
431
432
433
434
435
436
437
438
# File 'lib/groonga_client_model/migration.rb', line 428

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



456
457
458
# File 'lib/groonga_client_model/migration.rb', line 456

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



484
485
486
487
488
489
# File 'lib/groonga_client_model/migration.rb', line 484

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



448
449
450
# File 'lib/groonga_client_model/migration.rb', line 448

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

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



452
453
454
# File 'lib/groonga_client_model/migration.rb', line 452

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

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



444
445
446
# File 'lib/groonga_client_model/migration.rb', line 444

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

#timestampsObject



491
492
493
# File 'lib/groonga_client_model/migration.rb', line 491

def timestamps
  @migration.add_timestamp_columns(@table_name)
end

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



480
481
482
# File 'lib/groonga_client_model/migration.rb', line 480

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

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



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

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