Class: Arxutils::Dbutil::Dbinit

Inherits:
Object
  • Object
show all
Defined in:
lib/arxutils/dbutil/dbinit.rb

Overview

DB接続までの初期化を行う

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(db_dir, migrate_base_dir, src_config_dir, dbconfig, env, log_fname, opts) ⇒ Dbinit

DB接続までの初期化に必要なディレクトリの確認、作成



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/arxutils/dbutil/dbinit.rb', line 35

def initialize( db_dir , migrate_base_dir , src_config_dir , dbconfig , env, log_fname, opts )
  # DB格納ディレクトリ名
  @db_dir = db_dir
  # DB構成ファイルのテンプレート格納ディレクトリ
  @src_config_dir  = src_config_dir
  # DB構成ファイルの出力先ディレクトリ
  @dest_config_dir  = "config"
  # DB構成ファイル名
  @dbconfig_dest_fname = "#{dbconfig}.yaml"
  # DB構成ファイル用テンプレートファイル名
  @dbconfig_src_fname = "#{dbconfig}.tmpl"
  # DB構成ファイルへのパス
  @dbconfig_dest_path = File.join( @dest_config_dir , @dbconfig_dest_fname)
  # DB構成ファイル用テンプレートファイルへのパス
  @dbconfig_src_path = File.join(@src_config_dir  , @dbconfig_src_fname)
  # 環境の指定
  @env = env
  # DB用ログファイル名
  @log_fname = log_fname
  
  if @db_dir and @log_fname
    # DB用ログファイルへのパス
    @log_path = File.join( @db_dir , @log_fname )
    # migrate用スクリプト格納ディレクトリへのパス
    @migrate_dir = File.join( @db_dir , migrate_base_dir )
  end
  FileUtils.mkdir_p( @db_dir ) if @db_dir
  FileUtils.mkdir_p( @migrate_dir ) if @migrate_dir
  FileUtils.mkdir_p( @dest_config_dir )
  # remigrateが指定されれば、migrate用スクリプトとDB構成ファイルを削除する
  if opts["remigate"]
    FileUtils.rm( Dir.glob( File.join( @migrate_dir , "*"))) if @migrate_dir
    FileUtils.rm( Dir.glob( File.join( @dest_config_dir  , "*")))
  end
end

Instance Attribute Details

#dbconfig_dest_pathObject

生成するDB構成情報ファイルパス



28
29
30
# File 'lib/arxutils/dbutil/dbinit.rb', line 28

def dbconfig_dest_path
  @dbconfig_dest_path
end

#dbconfig_src_fnameObject

参照用DB構成情報ファイル名



30
31
32
# File 'lib/arxutils/dbutil/dbinit.rb', line 30

def dbconfig_src_fname
  @dbconfig_src_fname
end

#migrate_dirObject

migrate用スクリプトの出力先ディレクトリ名



32
33
34
# File 'lib/arxutils/dbutil/dbinit.rb', line 32

def migrate_dir
  @migrate_dir
end

Instance Method Details

#setupObject

DB接続し、DB用ログファイルの設定



72
73
74
75
76
# File 'lib/arxutils/dbutil/dbinit.rb', line 72

def setup
  dbconfig = YAML.load( File.read( @dbconfig_dest_path ) )
  ActiveRecord::Base.establish_connection(dbconfig[@env])
  ActiveRecord::Base.logger = Logger.new( @log_path )
end