Class: Legion::Extensions::Data::Migrator

Inherits:
Sequel::IntegerMigrator
  • Object
show all
Defined in:
lib/legion/extensions/data/migrator.rb

Instance Method Summary collapse

Constructor Details

#initialize(path, extension, lex_name) ⇒ Migrator

Returns a new instance of Migrator.



9
10
11
12
13
14
15
# File 'lib/legion/extensions/data/migrator.rb', line 9

def initialize(path, extension, lex_name, **)
  @path = path
  @extension = extension
  @lex_name = lex_name
  schema_dataset
  super(Legion::Data::Connection.sequel, path)
end

Instance Method Details

#default_schema_columnObject



17
18
19
# File 'lib/legion/extensions/data/migrator.rb', line 17

def default_schema_column
  :schema_version
end

#default_schema_tableObject



21
22
23
# File 'lib/legion/extensions/data/migrator.rb', line 21

def default_schema_table
  :extensions
end

#schema_datasetObject Also known as: ds



25
26
27
28
29
30
31
# File 'lib/legion/extensions/data/migrator.rb', line 25

def schema_dataset
  dataset = Legion::Data::Connection.sequel.from(default_schema_table).where(namespace: @extension)
  return dataset if dataset.any?

  Legion::Data::Model::Extension.insert(active: true, namespace: @extension, name: @lex_name)
  Legion::Data::Connection.sequel.from(default_schema_table).where(namespace: @extension)
end