Class: MysqlFramework::Scripts::Base
- Inherits:
-
Object
- Object
- MysqlFramework::Scripts::Base
- Defined in:
- lib/mysql_framework/scripts/base.rb
Class Method Summary collapse
Instance Method Summary collapse
- #apply ⇒ Object
- #database_name ⇒ Object
- #generate_partition_sql ⇒ Object
- #identifier ⇒ Object
- #partitions ⇒ Object
- #rollback ⇒ Object
- #tags ⇒ Object
- #update_procedure(proc_name, proc_file) ⇒ Object
Class Method Details
.descendants ⇒ Object
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
#apply ⇒ Object
19 20 21 |
# File 'lib/mysql_framework/scripts/base.rb', line 19 def apply raise NotImplementedError end |
#database_name ⇒ Object
10 11 12 |
# File 'lib/mysql_framework/scripts/base.rb', line 10 def database_name @database_name ||= ENV.fetch('MYSQL_DATABASE') end |
#generate_partition_sql ⇒ Object
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 |
#identifier ⇒ Object
14 15 16 17 |
# File 'lib/mysql_framework/scripts/base.rb', line 14 def identifier raise NotImplementedError if @identifier.nil? @identifier end |
#partitions ⇒ Object
6 7 8 |
# File 'lib/mysql_framework/scripts/base.rb', line 6 def partitions ENV.fetch('MYSQL_PARTITIONS', '500').to_i end |
#rollback ⇒ Object
23 24 25 |
# File 'lib/mysql_framework/scripts/base.rb', line 23 def rollback raise NotImplementedError end |
#tags ⇒ Object
35 36 37 |
# File 'lib/mysql_framework/scripts/base.rb', line 35 def [] 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") |