- 2008年4月 6日 20:48
- 仕事のこと
たいしたことではないんですけど、レプリケーションを構築したら是非ともたってみたかったこと。
まずは bakelatte_create.pl で マスタ用 Model を生成。
[travail@mina]~/public_html/SVNHOME/Bakelatte/script% ./bakelatte_create.pl model DBIC::Bakelatte DBIC::Schema Bakelatte::Schema created "/home/travail/public_html/SVNHOME/Bakelatte/script/../lib/Bakelatte/Model/DBIC/Bakelatte" exists "/home/travail/public_html/SVNHOME/Bakelatte/script/../t" created "/home/travail/public_html/SVNHOME/Bakelatte/script/../lib/Bakelatte/Model/DBIC/Bakelatte.pm" created "/home/travail/public_html/SVNHOME/Bakelatte/script/../t/model_DBIC-Bakelatte.t"
続いて、スレーブ用 Model を生成。
[travail@mina]~/public_html/SVNHOME/Bakelatte/script% ./bakelatte_create.pl model DBIC::Bakelatte::Slave DBIC::Schema Bakelatte::Schema created "/home/travail/public_html/SVNHOME/Bakelatte/script/../lib/Bakelatte/Model/DBIC/Bakelatte" exists "/home/travail/public_html/SVNHOME/Bakelatte/script/../t" created "/home/travail/public_html/SVNHOME/Bakelatte/script/../lib/Bakelatte/Model/DBIC/Bakelatte/Slave.pm" created "/home/travail/public_html/SVNHOME/Bakelatte/script/../t/model_DBIC-Bakelatte-Slave.t"
Bakelatte/etc/conf/bakelatte_local.yml(開発環境用) を編集。
## マスタ用
Model::DBIC::Bakelatte:
schema_class: Bakelatte::Schema
connect_info:
- dbi:mysql:bakelatte_local:hostname=192.168.1.1
- username
- password
## スレーブ用
Model::DBIC::Bakelatte::Slave:
schema_class: Bakelatte::Schema
connect_info:
- dbi:mysql:bakelatte_local:hostname=192.168.1.2
- username
- password
Bakelatte/etc/conf/bakelatte_service.yml(本番環境用) を編集。
## マスタ用
Model::DBIC::Bakelatte:
schema_class: Bakelatte::Schema
connect_info:
- dbi:mysql:bakelatte:hostname=192.168.1.1
- username
- password
## スレーブ用
Model::DBIC::Bakelatte::Slave:
schema_class: Bakelatte::Schema
connect_info:
- dbi:mysql:bakelatte:hostname=192.168.1.2
- username
- password
Bakelatte::Model::DBIC::Bakelatte を編集。
package Bakelatte::Model::DBIC::Bakelatte;
use strict;
use base 'Catalyst::Model::DBIC::Schema';
__PACKAGE__->config( Bakelatte->config->{'Model::DBIC::Bakelatte'} );
Bakelatte::Model::DBIC::Bakelatte::Slave を編集。
package Bakelatte::Model::DBIC::Bakelatte::Slave;
use strict;
use base 'Catalyst::Model::DBIC::Schema';
__PACKAGE__->config( Bakelatte->config->{'Model::DBIC::Bakelatte::Slave'} );
準備完了。
## マスタから SELECT
$c->model('Bakelatte::Member')->find( $id );
## スレーブから SELECT
$c->model('Bakelatte::Slave::Member')->find( $id );
今まで作ったアプリをこんな感じで実装し直しています。
Comments:0
Trackbacks:0
- TrackBack URL for this entry
- http://hibinokoto.jp/mt/mt-tb.cgi/265
- Listed below are links to weblogs that reference
- Catalyst と DBIC と mysql でレプリケーション from 日々のこと