Class: Wlog::InnitDb

Inherits:
Commandable show all
Includes:
StaticConfigurations
Defined in:
lib/wlog/commands/innit_db.rb

Overview

Command to create the initial database

Author:

  • Simon Symeonidis

Constant Summary

Constants included from StaticConfigurations

StaticConfigurations::AppDirectory, StaticConfigurations::AppName, StaticConfigurations::ConfigDirectory, StaticConfigurations::ConfigFile, StaticConfigurations::DataDirectory, StaticConfigurations::DefaultDb, StaticConfigurations::TaintFile, StaticConfigurations::TemplateDir, StaticConfigurations::TemplateOutputDir, StaticConfigurations::TemplateSampleFile

Instance Method Summary collapse

Instance Method Details

#executeObject



29
30
31
32
33
# File 'lib/wlog/commands/innit_db.rb', line 29

def execute
  current_dir = "#{File.expand_path File.dirname(__FILE__)}/../sql"
  make_schema_migrations!
  execute_migrations!
end

#execute_migrations!Object

TODO making this public is hacky, but I’m doing this for now for being able to test. Once tests are ok again, then I’m going to refactor this somewhere else so it’s more sane.



38
39
40
41
42
43
44
45
46
47
48
# File 'lib/wlog/commands/innit_db.rb', line 38

def execute_migrations!
  migrations = [MakeStandardTables, FixAttachmentsPolymorphicTable]
  existing = SchemaMigration.all.collect{ |el| el.version }

  migrations.reject!{ |e| existing.include? e.to_s}

  migrations.each do |migration| 
    ActiveRecord::Migration.run(migration)
    SchemaMigration.create(:version => migration.name)
  end
end