exe/arxutils_sqlite3 in arxutils_sqlite3-0.1.40 vs exe/arxutils_sqlite3 in arxutils_sqlite3-0.1.43

- old
+ new

@@ -30,28 +30,44 @@ pp ex.message end end -def prepare_for_migrate(env, db_scheme_ary, opts) +def prepare_for_migrate(env, db_scheme_ary, db_dir, dbconfig_dest_path, opts) + migrate_base_dir = Arxutils_Sqlite3::Dbutil::MIGRATE_DIR + # migrate用スクリプト格納ディレクトリへのパス + migrate_dir = File.join(db_dir, migrate_base_dir) + # DB構成ファイルの出力先ディレクトリ + dest_config_dir = Arxutils_Sqlite3::Dbutil::CONFIG_DIR + dbconfig_src_fname = "#{opts["dbconfig"]}.tmpl" + p "dbconfig_dest_path=#{dbconfig_dest_path}" + relation = opts[:relation] + mig = Arxutils_Sqlite3::Migrate.new( + dbconfig_dest_path, + dbconfig_src_fname, + migrate_dir, + db_dir, + db_scheme_ary, + relation, + opts) +end + +def make_log_path(db_dir, dbconfig) + log_path = "" log_fname = Arxutils_Sqlite3::Dbutil::Dbconnect.make_log_file_name( - opts["dbconfig"], Arxutils_Sqlite3::Dbutil::DATABASELOG) - dbconnect = Arxutils_Sqlite3::Dbutil::Dbconnect.new( - Arxutils_Sqlite3::Dbutil::DB_DIR, - Arxutils_Sqlite3::Dbutil::MIGRATE_DIR, - Arxutils_Sqlite3::Dbutil::CONFIG_DIR, - opts["dbconfig"], - env, - log_fname, - opts - ) - if opts["cmd"] != "i" - Arxutils_Sqlite3::Migrate.migrate(dbconnect, db_scheme_ary, opts["migrate_cmd"], opts[:relation], opts) + dbconfig, Arxutils_Sqlite3::Dbutil::DATABASELOG) + if db_dir && log_fname + # DB用ログファイルへのパス + log_path = File.join(db_dir, log_fname) end - dbconnect + log_path end +def make_dbconfig_path(config_dir, dbconfig) + File.join( config_dir, "#{dbconfig}.yml") +end + banner = "Usage: bundle exec ruby exe/makemigrate --cmd=(s|c|m|i|d) -y yaml_file --klass=class" opts = @opts ? @opts : {} opts["dbconfig"] = Arxutils_Sqlite3::Dbutil::DBCONFIG_SQLITE3 @@ -65,11 +81,11 @@ env = ENV.fetch("ENV", nil) env ||= "production" case opts["cmd"] when "s" - FileUtils.cp(Arxutils_Sqlite3::DB_SCHEME_FILE, Arxutils_Sqlite3::CONFIG_DIR ) + FileUtils.cp(Arxutils_Sqlite3::DB_SCHEME_FILE, Arxutils_Sqlite3::Dbutil::CONFIG_DIR ) if opts["klass"].nil? || opts["klass"].strip == "" puts banner exit 10 end @@ -81,54 +97,80 @@ file.write(result_content) } db_scheme_ary = nil when "c" - opts["migrate_cmd"] = "makeconfig" - #opts["remigrate"] = false db_scheme_ary = nil + db_dir = Arxutils_Sqlite3::Dbutil::DB_DIR + config_dir = Arxutils_Sqlite3::Dbutil::CONFIG_DIR + # DB構成ファイル名 + dbconfig_path = make_dbconfig_path(config_dir, opts["dbconfig"]) - prepare_for_migrate(env, db_scheme_ary, opts) + mig = prepare_for_migrate(env, db_scheme_ary, db_dir, dbconfig_path, opts) + mig.make_dbconfig(opts) + when "m" if opts["yaml"].nil? || opts["yaml"].strip == "" puts banner exit 20 end opts["migrate_cmd"] = "migrate" db_scheme_ary = YAML.load_file( opts["yaml"] ) scope = Object.new - # p "===" - # p opts - # p "=== END" hash0 = {module_name: opts[:relation][:module].join("::")} hash = db_scheme_ary[0].merge( hash0 ) result_content = Ykutils::Erubyx.erubi_render_with_template_file(Arxutils_Sqlite3::DBSETUP_FILE, scope, hash) File.open(Arxutils_Sqlite3::DEST_DBSETUP_FILE, "w"){|file| file.write(result_content) } -# FileUtils.cp(Arxutils_Sqlite3::DBSETUP_FILE, Arxutils_Sqlite3::CONFIG_DIR ) + db_dir = Arxutils_Sqlite3::Dbutil::DB_DIR - # p "cmd=m" - dbconnect = prepare_for_migrate(env, db_scheme_ary, opts) - dbconnect.connect - #db_migrate_dir = File.join(Dbutil::DB_DIR, Dbutil::MIGRATE_DIR) - ActiveRecord::MigrationContext.new(dbconnect.migrate_dir, ActiveRecord::SchemaMigration).up + config_dir = Arxutils_Sqlite3::Dbutil::CONFIG_DIR + # DB構成ファイル名 + dbconfig_path = make_dbconfig_path(config_dir, opts["dbconfig"]) + # DBログファイルへのパス + log_path = make_log_path(db_dir, opts["dbconfig"]) + mig = prepare_for_migrate(env, db_scheme_ary, db_dir, dbconfig_path, opts) + mig.process + dbconnect = Arxutils_Sqlite3::Dbutil::Dbconnect.new( + dbconfig_path, + env, + log_path + ) + connect_time = dbconnect.connect + p "connect_time=#{connect_time}" + ActiveRecord::MigrationContext.new(mig.migrate_dir, ActiveRecord::SchemaMigration).up when "i" #db_scheme_ary = YAML.load_file( opts["yaml"] ) db_scheme_ary = nil - dbconnect = prepare_for_migrate(env, db_scheme_ary, opts) + db_dir = Arxutils_Sqlite3::Dbutil::DB_DIR + + config_dir = Arxutils_Sqlite3::Dbutil::CONFIG_DIR + # DB構成ファイルへのパス + dbconfig_dest_path = make_dbconfig_path(config_dir, opts["dbconfig"]) + # DBログファイルへのパス + log_path = make_log_path(db_dir, opts["dbconfig"]) + dbconnect = Arxutils_Sqlite3::Dbutil::Dbconnect.new( + dbconfig_dest_path, + env, + log_path + ) connect_time = dbconnect.connect Dbsetup.new(connect_time) when "d" - opts["migrate_cmd"] = "delete" db_scheme_ary = nil - dbconnect = prepare_for_migrate(env, db_scheme_ary, opts) + mig = repare_for_migrate(env, db_scheme_ary, opts) + mig.delete_migrate_config_and_db + else puts "Invalid command(#{opts["cmd"]}) specified!!" end + +# +