dbms_init...1

This commit is contained in:
choi.jh 2025-07-10 16:50:12 +09:00
parent 07f9be5e42
commit 0703fb9214
3 changed files with 63 additions and 10 deletions

View File

@ -17,6 +17,7 @@ abstract class DBMigration extends BaseController
} }
abstract protected function getSourceDB(): BaseConnection; abstract protected function getSourceDB(): BaseConnection;
abstract protected function getClient(): array; abstract protected function getClient(): array;
abstract protected function getLine(): array;
final protected function getTargetDB(): BaseConnection final protected function getTargetDB(): BaseConnection
{ {
if ($this->_targetDB === null) { if ($this->_targetDB === null) {
@ -25,7 +26,7 @@ abstract class DBMigration extends BaseController
return $this->_targetDB; return $this->_targetDB;
} }
protected function client_process(mixed $row): array protected function client_process(mixed $row, int $cnt): void
{ {
$temps = []; $temps = [];
$temps['code'] = $row['Client_Code']; $temps['code'] = $row['Client_Code'];
@ -47,7 +48,11 @@ abstract class DBMigration extends BaseController
if (!empty($row['Client_Receive_date'])) { if (!empty($row['Client_Receive_date'])) {
$temps['created_at'] = $row['Client_Receive_date'];; $temps['created_at'] = $row['Client_Receive_date'];;
} }
return $temps; //신규DB에 삽입
if (!$this->getTargetDB()->table('clientinfo')->insert($temps)) {
throw new \Exception($this->getTargetDB()->error()['message']);
}
echo "{$cnt} -> {$temps['name']} 고객완료.\n";
} }
final public function client(): void final public function client(): void
@ -57,11 +62,55 @@ abstract class DBMigration extends BaseController
try { try {
$cnt = 1; $cnt = 1;
foreach ($this->getClient() as $row) { foreach ($this->getClient() as $row) {
$datas = $this->client_process($row); $this->client_process($row, $cnt);
if (!$this->getTargetDB()->table('clientinfo')->insert($datas)) { $cnt++;
}
echo __FUNCTION__ . " 작업을 완료하였습니다.";
$this->getTargetDB()->transCommit();
} catch (\Exception $e) {
//Transaction Rollback
$this->getTargetDB()->transRollback();
echo __FUNCTION__ . " 작업을 실패하였습니다.\n--------------\n" . $e->getMessage() . "\n--------------\n";
}
}
protected function line_process(mixed $row, int $cnt): void
{
$temps = [];
$temps['code'] = $row['Client_Code'];
$temps['role'] = $row['Client_Reseller'] == 30 ? "reseller" : "user";
$temps['name'] = $row['Client_Name'];
$temps['phone'] = empty($row['Client_Phone1']) ? "" : $row['Client_Phone1'];
if (empty($temps['phone'])) {
$temps['phone'] = empty($row['Client_Phone2']) ? "" : $row['Client_Phone2'];
}
$temps['email'] = empty($row['Client_EMail1']) ? "" : $row['Client_EMail1'];
if (empty($temps['email'])) {
$temps['email'] = empty($row['Client_EMail2']) ? "" : $row['Client_EMail2'];
}
$temps['account_balance'] = intval($row['Client_Money']);
$temps['coupon_balance'] = 0;
$temps['point_balance'] = 0;
$temps['status'] = 'default';
$temps['updated_at'] = empty($row['Client_Renew_date']) ? NULL : $row['Client_Renew_date'];;
if (!empty($row['Client_Receive_date'])) {
$temps['created_at'] = $row['Client_Receive_date'];;
}
//신규DB에 삽입
if (!$this->getTargetDB()->table('lineinfo')->insert($temps)) {
throw new \Exception($this->getTargetDB()->error()['message']); throw new \Exception($this->getTargetDB()->error()['message']);
} }
echo "{$cnt} -> {$datas['name']} 고객완료.\n"; echo "{$cnt} -> {$temps['name']} Line완료.\n";
}
final public function line(): void
{
//Transaction Start
$this->getTargetDB()->transStart();
try {
$cnt = 1;
foreach ($this->getClient() as $row) {
$this->line_process($row, $cnt);
$cnt++; $cnt++;
} }
echo __FUNCTION__ . " 작업을 완료하였습니다."; echo __FUNCTION__ . " 작업을 완료하였습니다.";

View File

@ -46,4 +46,8 @@ class SourceDB extends DBMigration
{ {
return $this->getSourceDB()->query('SELECT * FROM clientdb')->getResultArray(); return $this->getSourceDB()->query('SELECT * FROM clientdb')->getResultArray();
} }
protected function getLine(): array
{
return $this->getSourceDB()->query('select Line_code,line_case,Line_ip,line_client_name,line_gateway,line_id,line_pass,line_name,line_haveip,line_phone,line_mainip from linedb;select Line_code,line_case,Line_ip,line_client_name,line_gateway,line_id,line_pass,line_name,line_haveip,line_phone,line_mainip from linedb')->getResultArray();
}
} }

View File

@ -4,13 +4,13 @@
"settings": { "settings": {
"width": 3000, "width": 3000,
"height": 3000, "height": 3000,
"scrollTop": -1064.2363, "scrollTop": -1288.5696,
"scrollLeft": -958.7592, "scrollLeft": -826,
"zoomLevel": 0.76, "zoomLevel": 0.76,
"show": 511, "show": 511,
"database": 4, "database": 4,
"databaseName": "", "databaseName": "",
"canvasType": "@dineug/erd-editor/builtin-schema-sql", "canvasType": "ERD",
"language": 1, "language": 1,
"tableNameCase": 4, "tableNameCase": 4,
"columnNameCase": 2, "columnNameCase": 2,