■ユーザーズフォーラム リニューアルのお知らせ
新規投稿は新ユーザーズフォーラムにお願いします。

一つのDBに複数BaserCMSをインストールする

kenjicool > 一つのDBに複数BaserCMSをインストールする @ 2010/9/26 1:19
こんばんわ
DBが一つしかないサーバで複数BaserCMSをインストールする必要がでてきました。
(具体的にはさくらのレンタルサーバ1契約で5社分のコーポレートサイト運用です)

現行では1つのDBに対して複数BaserCMSをインストールする事ができませんが、
ソースを見たところその予定があるようでしたのでそれを継承して完成させてみました。
次のバージョンに入れてもらえるとありがたいです。
ソースが必要なら言ってください。Contributeします。

いじったソースは以下のものです。
今回はmysqlしか使わないのでmysql対応の修正しかしてません。
■SQLの "bc_"の部分を置換用文字列「%%DbPrefix%%」に置き換え
baser/config/sql/baser_mysql.sql
baser/plugins/blog/config/sql/blog_mysql.sql
baser/plugins/feed/config/sql/feed_mysql.sql
baser/plugins/mail/config/sql/mail_mysql.sql


■テンプレートの「プレフィックス」を有効にする(無効になってるだけでした)
baser/views/installations/step3.ctp


■フォームで受け取ったプレフィックスをdbrestoreクラスに渡す(パラメータ追加)
baser/controllers/installations_controller.php


■SQL実行時にプレフィックスを置換する
baser/vendors/dbrestore.php


置換文字列は「%%DbPrefix%%」としてます。
baser/vendors/dbrestore.php のdoRestoreに以下のような感じでいれました。
  if (!empty($this->_dbPrefix)) {
    $line = strtr($line, array("%%DbPrefix%%" => $this->_dbPrefix));
  }

このメソッドのSQL実行のインプリのおかげで完成したようなものです。ありがたや。
ryuring > Re: 一つのDBに複数BaserCMSをインストールする @ 2010/9/26 5:38
ありがたや。

kenjicoolさん、情報提供ありがとうございます!素晴らしいです!

お察しのとおり、そこまで手がまわっていませんでした。。

実は、DB別にSQLを用意するのが手間なので、CakeShemaへの移行を検討しているところでした。

http://project.e-catchup.jp/issues/1054

CakeSchemaへ移行すれば、データベースのアップサイジングも簡単にできるようになります。(そのはずです)
DBのバックアップやレストアも思いのままです。(そのはずです)

CakeSchemaへの移行が完了後に是非コアへ取り入れさせて頂きたいと思います!

Twitter:@ryuring
baserCMS総合サービスサイト ビーコミ

kenjicool > Re: 一つのDBに複数BaserCMSをインストールする @ 2010/9/27 0:09
ryuringさん
返信ありがとうございます。

CakeShemaいいですねー、ぜひお願いします。

他にも色々と思うところはあるのでこれからも提案していきたいと思います。
よろしくお願いいたします。
ログイン
ユーザー名:
パスワード:


  新規登録 / パスワード紛失

検索

facebook
フォーラムで悩みが解決した場合など、よかったら「いいね!」をポチっとクリックしてください!質問の回答者や開発者の励みになります

フォーラムガイド


関連リンク

オンライン状況
15 人のユーザが現在オンラインです。 (13 人のユーザが フォーラム を参照しています。)

登録ユーザ: 0
ゲスト: 15