j_install_db 초기화 코드 정리

This commit is contained in:
2024-05-17 18:11:56 +00:00
parent 47a4144757
commit 84b0b69b67
2 changed files with 26 additions and 23 deletions
+23 -16
View File
@@ -63,6 +63,8 @@ $db->addHook('run_failed', function(){
]);
});
$mysqli_obj = $db->get();
$prefix = basename(__DIR__);
$result = Util::generateFileUsingSimpleTemplate(
@@ -84,24 +86,29 @@ if($result !== true){
]);
}
if (!class_exists('\\sammo\\DB')) {
$loader = require __DIR__.'/../vendor/autoload.php';
$loader->addClassMap((function () {
$d_settingMap = [];
foreach (glob(__DIR__.'/d_setting/*.orig.php') as $filepath) {
$filepath = str_replace('.orig.php', '.php', $filepath);
if(!file_exists($filepath)) {
continue;
}
$filename = basename($filepath);
$classname = explode('.', $filename)[0];
$d_settingMap['sammo\\'.$classname] = $filepath;
};
return $d_settingMap;
})());
//최소한의 테이블 처리를 위해 수동으로 초기화하도록 하자
if($mysqli_obj->multi_query(file_get_contents(__DIR__.'/sql/reset.sql'))){
while(true){
if (!$mysqli_obj->more_results()) {
break;
}
if(!$mysqli_obj->next_result()){
break;
}
}
}
ResetHelper::clearDB($db, $prefix);
if($mysqli_obj->multi_query(file_get_contents(__DIR__.'/sql/schema.sql'))){
while(true){
if (!$mysqli_obj->more_results()) {
break;
}
if(!$mysqli_obj->next_result()){
break;
}
}
}
ServConfig::getServerList()[$prefix]->closeServer();
+3 -7
View File
@@ -8,7 +8,7 @@ class ResetHelper{
}
static public function clearDB(?\MeekroDB $db = null, ?string $prefix = null):array{
static public function clearDB():array{
$servRoot = realpath(__DIR__.'/../');
if(!file_exists($servRoot.'/logs') || !file_exists($servRoot.'/data')){
@@ -72,15 +72,11 @@ class ResetHelper{
}
}
if($prefix === null){
$prefix = DB::prefix();
}
$prefix = DB::prefix();
ServConfig::getServerList()[$prefix]->closeServer();
if($db === null){
$db = DB::db();
}
$db = DB::db();
$mysqli_obj = $db->get();
$serverID = $prefix.'_'.date("ymd").'_'.Util::randomStr(4);