資料庫設定來源
目的
整理兩個專案的 DB 設定來源與查詢規則。
這份文件不保存 DB host、帳號、密碼。
Redis 設定已獨立到 Redis。Redis 是 cache / lock / session / rate limit 來源,不要和 MySQL / relational DB 查詢規則混在一起。
pro360_api_82
主要來源:
Lib/Common/Configuration.php
docker/staging/Configuration.php
Lib/Common/DBFactory.php
Lib/Common/DBConfiguration.php
Lib/Common/DBConfigurationArray.php常見 key 名稱:
DB_Server
DB_Server_Name
DB_DBName
DB_Port
DB_User_Name
DB_PasswordDB 連線入口:
\PRO360\Common\DBFactory::get()查 DB / schema 時,依 repo 規則使用容器 PHP 8.2:
docker exec -w /project-data cd63f9147e8d php -r 'require "vendor/autoload.php"; $db=\PRO360\Common\DBFactory::get(); /* query */'不要:
- 用本機 PHP 直接查
pro360_api_82DB - 手動 require
Lib/Common/Configuration.php - 沒查 schema 就猜欄位
get-lancer-php56
主要來源:
app/Config/database.php常見 connection name:
default
master
slave / replica 類 connectionlegacy CakePHP 會透過 datasource / model 使用這些 connection。比對 legacy 行為時,先確認該 model 是否有指定 datasource 或使用預設 connection。
比對新舊 DB 行為時
- 先確認兩邊是否指向同一份資料庫或 replica。
- 只記 connection name 與檔案來源,不記密碼。
- schema 查詢先查欄位,再查資料。
- 如果是
search_addbaseline,優先使用專案既有 script 或文件規則,不要手刻大 SQL。