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