Module: JunglePath::DBAccess::Meta::Schema
- Defined in:
- lib/jungle_path/db_access/meta/schema.rb
Class Method Summary collapse
- .create(table_subclasses, db_config, logger = $stdout) ⇒ Object
- .set_version(schema_info_class, db_config, schema_initial_version) ⇒ Object
- .set_version_to_latest(schema_info_class, db_config, migrations_path) ⇒ Object
Class Method Details
.create(table_subclasses, db_config, logger = $stdout) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# 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) ⇒ Object
28 29 30 31 32 33 34 35 36 |
# 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) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 |
# 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 |