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.



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

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



15
16
17
# File 'lib/legion/extensions/data/migrator.rb', line 15

def default_schema_column
  :schema_version
end

#default_schema_tableObject



19
20
21
# File 'lib/legion/extensions/data/migrator.rb', line 19

def default_schema_table
  :extensions
end

#schema_datasetObject Also known as: ds



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

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

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