module JunglePath::DBAccess::Meta::Schema
Public Class Methods
create(table_subclasses, db_config, logger=$stdout)
click to toggle source
# File lib/jungle_path/db_access/meta/schema.rb, line 12 def self.create(table_subclasses, db_config, logger=$stdout) puts "JunglePath::DBAccess::Meta::Schema.create..." db = JunglePath::DBAccess::IO.connection_from_config(db_config) db.loggers << Logger.new(logger) schema = JunglePath::DBModel::Schema.new(db) table_subclasses.each do |table| if table.is_view? puts "create view: #{table.table_name}" db.run(table.view.create) else puts "create table: #{table.table_name}" schema.create_table table end end end
set_version(schema_info_class, db_config, schema_initial_version)
click to toggle source
# File lib/jungle_path/db_access/meta/schema.rb, line 28 def self.set_version schema_info_class, db_config, schema_initial_version # set starting version numnber db = JunglePath::DBAccess::IO::DB.new(db_config) db.schema.create_table schema_info_class if schema_initial_version schema_info = schema_info_class.new({version: schema_initial_version}) db.insert._model(schema_info) end end
set_version_to_latest(schema_info_class, db_config, migrations_path)
click to toggle source
# File lib/jungle_path/db_access/meta/schema.rb, line 38 def self.set_version_to_latest schema_info_class, db_config, migrations_path version = 0 migration_files = Dir.glob(File.join(migrations_path, "*.rb")) migration_files.each do |file_name| puts file_name parts = File.basename(file_name).split('_') if parts.length > 0 value = parts[0].to_i version = value if value > version end end set_version schema_info_class, db_config, version end