Replication
in package
Table of Contents
Constants
- BACKUP_PREFIX = 'backup_'
- 退避(バックアップ)テーブルへ付与する接頭辞。 本番テーブル名(DB_PREFIX 付き)の前に付与する(例: backup_acms_blog / backup_mysite_blog)。 STAGING_PREFIX と対称で、DB_PREFIX に依存せず一貫した命名になる。
- STAGING_PREFIX = 'restore_'
- リストア時にステージング用テーブルへ付与する接頭辞。 本番テーブル名(DB_PREFIX 付き)の前にさらに付与する(例: restore_acms_blog)。
Properties
Methods
- __construct() : mixed
- authorityValidation() : mixed
- buildCreateTableSql() : string
- テーブル作成クエリの組み立て
- buildDropStagingSql() : string
- ステージング用テーブルを削除する DROP 文を組み立てる。
- buildInsertSql() : void
- データ投入sqlの組み立て
- buildSwapSql() : string
- ステージングテーブルを本番テーブルとアトミックに入れ替える RENAME 文を組み立てる。
- dropAllTables() : void
- 全テーブルの削除
- dropCashTable() : void
- 一時テーブルの削除
- dropStagingTables() : void
- ステージング用テーブル(restore_acms_*)を削除する。
- getTableList() : array<string|int, mixed>
- 全テーブルの取得
- renameAllTable() : void
- 全テーブルのリネーム
- rewriteDomain() : void
- ドメインの書き換え
- swapStagingTables() : void
- ステージングテーブルを本番テーブルとアトミックに入れ替える。
- backupTableName() : string
- 退避(バックアップ)テーブル名を組み立てる。 本番テーブル名(DB_PREFIX 付き)の前に BACKUP_PREFIX を付与する(例: acms_blog -> backup_acms_blog)。
- isBackupTableName() : bool
- 自インストールの退避(バックアップ)テーブルかどうかを判定する。 退避名は backup_<DB接頭辞>... になるため、その接頭辞で始まるものだけを対象とする。 (旧バージョンの二重接頭辞 backup_acms_<本番名> も、デフォルト接頭辞環境では backup_acms_ で始まるため同じ判定で拾える。)別接頭辞インストールの退避は対象外。
Constants
BACKUP_PREFIX
退避(バックアップ)テーブルへ付与する接頭辞。 本番テーブル名(DB_PREFIX 付き)の前に付与する(例: backup_acms_blog / backup_mysite_blog)。 STAGING_PREFIX と対称で、DB_PREFIX に依存せず一貫した命名になる。
public
mixed
BACKUP_PREFIX
= 'backup_'
STAGING_PREFIX
リストア時にステージング用テーブルへ付与する接頭辞。 本番テーブル名(DB_PREFIX 付き)の前にさらに付与する(例: restore_acms_blog)。
public
mixed
STAGING_PREFIX
= 'restore_'
Properties
$db
protected
Base
$db
$dbName
protected
string
$dbName
$dsn
protected
array<string|int, mixed>
$dsn
Methods
__construct()
public
__construct([mixed $dsn = null ]) : mixed
Parameters
- $dsn : mixed = null
authorityValidation()
public
authorityValidation() : mixed
Tags
buildCreateTableSql()
テーブル作成クエリの組み立て
public
buildCreateTableSql() : string
Return values
stringbuildDropStagingSql()
ステージング用テーブルを削除する DROP 文を組み立てる。
public
static buildDropStagingSql(array<int, string> $tables, string $dbPrefix) : string
Parameters
- $tables : array<int, string>
-
現在の全テーブル名
- $dbPrefix : string
-
DB のテーブル接頭辞(例: acms_)
Return values
string —対象が無ければ空文字
buildInsertSql()
データ投入sqlの組み立て
public
buildInsertSql(string $table, resource &$handle) : void
Parameters
- $table : string
- $handle : resource
buildSwapSql()
ステージングテーブルを本番テーブルとアトミックに入れ替える RENAME 文を組み立てる。
public
static buildSwapSql(array<int, string> $tables, string $dbPrefix) : string
現在の本番テーブル(DB_PREFIX 付き)を backup_acms_* へ退避し、ステージング (restore_acms_*)を本番名へ昇格する組を、単一の RENAME TABLE 文にまとめる。 退避→昇格の順に並べることで、本番名が一旦解放されてから昇格される。 単一文にすることで、テーブルが存在しない時間帯(本番閲覧で 500 になる窓)を最小化する。
Parameters
- $tables : array<int, string>
-
現在の全テーブル名
- $dbPrefix : string
-
DB のテーブル接頭辞(例: acms_)
Tags
Return values
stringdropAllTables()
全テーブルの削除
public
dropAllTables() : void
dropCashTable()
一時テーブルの削除
public
dropCashTable() : void
dropStagingTables()
ステージング用テーブル(restore_acms_*)を削除する。
public
dropStagingTables() : void
getTableList()
全テーブルの取得
public
getTableList() : array<string|int, mixed>
Return values
array<string|int, mixed>renameAllTable()
全テーブルのリネーム
public
renameAllTable() : void
rewriteDomain()
ドメインの書き換え
public
rewriteDomain(string $new_domain, string $name) : void
Parameters
- $new_domain : string
- $name : string
Tags
swapStagingTables()
ステージングテーブルを本番テーブルとアトミックに入れ替える。
public
swapStagingTables() : void
Tags
backupTableName()
退避(バックアップ)テーブル名を組み立てる。 本番テーブル名(DB_PREFIX 付き)の前に BACKUP_PREFIX を付与する(例: acms_blog -> backup_acms_blog)。
private
static backupTableName(string $liveTable) : string
Parameters
- $liveTable : string
Return values
stringisBackupTableName()
自インストールの退避(バックアップ)テーブルかどうかを判定する。 退避名は backup_<DB接頭辞>... になるため、その接頭辞で始まるものだけを対象とする。 (旧バージョンの二重接頭辞 backup_acms_<本番名> も、デフォルト接頭辞環境では backup_acms_ で始まるため同じ判定で拾える。)別接頭辞インストールの退避は対象外。
private
static isBackupTableName(string $table, string $dbPrefix) : bool
Parameters
- $table : string
- $dbPrefix : string