baserCMS プラグインのアップデートスクリプト

2018/07/20 | 開発記録 | hideichi

(参考)
http://project.e-catchup.jp/projects/basercms/wiki/データベースの構造変更
http://project.e-catchup.jp/projects/basercms/wiki/アップデートスクリプト

参考URLはコアのアップデートについてみたいだけど、プラグインのアップデートでも同様にできるようだ。
プラグインのアップデートで、スキーマファイルってどうやって適用するんだ?
で調べてみたら見つけた。コアのプラグインも同じだったので、コアのプラグインも参考にやってみました。
特に問題なくスキーマファイルが適用されたようである。
以下、いつものように私のメモ代わりです。

例えば、0.0.0 から 0.0.1 へアップデートするとした場合、以下のようにファルダとファイルと用意して、
プラグイン管理からアップデートボタンを押すと、アップデートスクリプトが走る。

app/PluginName/Config/update/0.0.1/updater.php

<?php
if($this->loadSchema('0.0.1', 'PluginName', 'table_name', $filterType = 'alter')) {
	$this->setUpdateLog('table_name テーブルの構造変更に成功しました。');
} else {
	$this->setUpdateLog('table_name テーブルの構造変更に失敗しました。', true);

途中の足りないフォルダは作る。
0.0.1フォルダはバージョン番号で、これからアップデートするバージョンの番号に合わせる。
ちなみに、0.0.1-beta とか数字以外のバージョンを付けると、プラグイン管理でアップデートのボタンが出てこないようなので注意。
$filterType は alter 以外にもあるんだろうけど調べてない。

app/PluginName/Config/update/0.0.1/alter_table_name.php
システム管理 → ユーティリティ → ユーティリティメニュー → スキーマファイル生成
で出力したファイルの頭に、alter_ を付けて、updater.php と同じ階層に設置。

さっそく追記。
1.0.0-beta から 0.0.1 へバージョンアップ(?)したら、updater.phpが動かなかったみたい。
バージョンダウンは動かない。という仕様なんだろうか。
例によって調べてない。

alter は良いのだけど、insert は無いのだろうか。
新規テーブルの追加がわからなかった。今度調べる。

前の記事:

次の記事:

2018/07/20 | 開発記録

コメント/トラックバック

トラックバック用URL:

この投稿のコメント・トラックバックRSS




管理人にのみ公開されます

前の記事:

次の記事:

baserCMS プラグインのアップデートスクリプト
baserCMS プラグインのアップデートスクリプト

(参考) http://project.e-catchup.jp/pr...

kusanagi,baserCMSのドメイン変更手順
kusanagi,baserCMSのドメイン変更手順

baserCMSって書いたけど、cakephp2系も同じだと思う。 s...

baserCMS プラグイン・テーマの仕上げ作業
baserCMS プラグイン・テーマの仕上げ作業

プラグインとかテーマとか作って、 あーできたー、の後に最後にやる仕上げ...

no image
love-beer

諸君、私はビールが好きだ 諸君、私はビールが好きだ 諸君、私はビールが...

no image
原宿の床屋

世田谷区経堂すずらん通りの入り口。 それは、私が新潟の片田舎から上京し...

→もっと見る

PAGE TOP ↑