内容へ移動
ClownWiki
ユーザ用ツール
ログイン
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
最近の変更
メディアマネージャー
サイトマップ
トレース:
cakephp:mysql_replication
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
===== MySQLレプリケーション環境対応 ===== ==== 動作概要 ==== 通常はスレーブに接続 ↓ 更新クエリ実行前にマスターに接続 ↓ 更新クエリ実行 ↓ 更新クエリ実行後、スレーブに接続を戻す ↓ 通常スレーブに接続 ==== app/config/database.php ==== <code> class DATABASE_CONFIG { var $default = array( // as MySQL slave server 'driver' => 'mysql', 'persistent' => false, 'host' => 'スレイブのホスト', 'login' => 'ユーザー名', 'password' => 'パスワード', 'database' => 'DB名', 'encoding' => 'utf8' ); var $master = array( // as MySQL master server 'driver' => 'mysql', 'persistent' => false, 'host' => 'マスターのホスト', 'login' => 'ユーザー名', 'password' => 'パスワード', 'database' => 'DB名', 'encoding' => 'utf8' ); } </code> ==== app/app_model.php ==== <code> <?php /* * 通常時は default で接続しているので、 * 更新系クエリのときだけ master に切り替える */ class AppModel extends Model { function save($data = null, $validate = true, $fieldList = array()) { $oldDb = $this->useDbConfig; $this->setDataSource('master'); $val = parent::save($data, $validate, $fieldList); $this->setDataSource($oldDb); return $val; } function updateAll($fields, $conditions = true) { $oldDb = $this->useDbConfig; $this->setDataSource('master'); $val = parent::updateAll($fields, $conditions); $this->setDataSource($oldDb); return $val; } function delete($id = null, $cascade = true) { $oldDb = $this->useDbConfig; $this->setDataSource('master'); $val = parent::delete($id, $cascade); $this->setDataSource($oldDb); return $val; } function deleteAll($conditions, $cascade = true, $callbacks = false) { $oldDb = $this->useDbConfig; $this->setDataSource('master'); $val = parent::deleteAll($conditions, $cascade, $callbacks); $this->setDataSource($oldDb); return $val; } } </code> ==== query べた書きのとき(ORM通さない) ==== <code> $sql = 'upate users ...'; $oldDb = $this->useDbConfig; $this->setDataSource('master'); if(!$this->query($sql)) { $this->setDataSource($oldDb); return false; } $this->setDataSource($oldDb); </code>
cakephp/mysql_replication.txt
· 最終更新: 2025/02/16 13:53 by
127.0.0.1
ページ用ツール
文書の表示
以前のリビジョン
バックリンク
文書の先頭へ