Class: MysqlFramework::Scripts::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/mysql_framework/scripts/base.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.descendantsObject



31
32
33
# File 'lib/mysql_framework/scripts/base.rb', line 31

def self.descendants
  ObjectSpace.each_object(Class).select { |klass| klass < self }
end

Instance Method Details

#applyObject

Raises:

  • (NotImplementedError)


19
20
21
# File 'lib/mysql_framework/scripts/base.rb', line 19

def apply
  raise NotImplementedError
end

#database_nameObject



10
11
12
# File 'lib/mysql_framework/scripts/base.rb', line 10

def database_name
  @database_name ||= ENV.fetch('MYSQL_DATABASE')
end

#generate_partition_sqlObject



27
28
29
# File 'lib/mysql_framework/scripts/base.rb', line 27

def generate_partition_sql
  (1..partitions).each_with_index.map { |_, i| "PARTITION p#{i} VALUES IN (#{i})" }.join(",\n\t")
end

#identifierObject

Raises:

  • (NotImplementedError)


14
15
16
17
# File 'lib/mysql_framework/scripts/base.rb', line 14

def identifier
  raise NotImplementedError if @identifier.nil?
  @identifier
end

#partitionsObject



6
7
8
# File 'lib/mysql_framework/scripts/base.rb', line 6

def partitions
  ENV.fetch('MYSQL_PARTITIONS', '500').to_i
end

#rollbackObject

Raises:

  • (NotImplementedError)


23
24
25
# File 'lib/mysql_framework/scripts/base.rb', line 23

def rollback
  raise NotImplementedError
end

#tagsObject



35
36
37
# File 'lib/mysql_framework/scripts/base.rb', line 35

def tags
  []
end

#update_procedure(proc_name, proc_file) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
# File 'lib/mysql_framework/scripts/base.rb', line 39

def update_procedure(proc_name, proc_file)
  mysql_connector.transaction do
    mysql_connector.query("      DROP PROCEDURE IF EXISTS \#{proc_name};\n    SQL\n\n    proc_sql = File.read(proc_file)\n\n    mysql_connector.query(proc_sql)\n  end\nend\n")