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




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

前の記事:

次の記事:

【二種免許】深視力検査合格のコツや裏技
【二種免許】深視力検査合格のコツや裏技

東京では免許更新の際、ゴールド免許の方や島嶼にお住まいの方以外は、鮫洲...

no image
[cakephp4] dirtyとoriginal

patchEntityすると、変更したところと、変更前の内容が取れる。...

BaserTestCaseで特定プラグインの有無でfixturesを振り分ける
BaserTestCaseで特定プラグインの有無でfixturesを振り分ける

baserCMSのTestCaseで、特定のプラグインの有無を調べて、...

kusanagi で letsencryptが更新されない
kusanagi で letsencryptが更新されない

結論から、アパッチを直接再起動すると直るかも。 systemctl r...

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

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

→もっと見る

PAGE TOP ↑