2019/11/11

Craft CMS でプラグインのインストールがうまくいかない時は CLI 経由で試したうえでデバッグする #craftcms

先日書いたかんじで、プラグインがうまくインストールできずにはまっていたのだけど。

@BUN と @tinybeans に質問しながら対応して無事インストールできた。

入れようとしていたプラグインは

Dolphiq/craft3-plugin-redirect
https://github.com/Dolphiq/cra...

で、マルチサイトの場合のバグがあるので、それを fork して対応した

nyby/craft3-plugin-redirect
https://github.com/nyby/craft3...

こちらのプラグインを入れてみようとしていた。

fork された 1.0.24 はCraftに認識されているけど、管理画面からインストールしようとしてもエラーになるという状況だった。

CLI からプラグインをインストール

CLI 側からインストールをしてみる

$ ./craft install/plugin redirect

が、管理画面をみてもインストールされていない。

ということで一度管理画面からプラグインを削除してみる。
と、今回は問題なく削除できた。

ということで改めて CLI でインストールしてみる。

composer.json には先日同様に以下のような感じで設定を書いておく。

{
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/nyby/craft3-plugin-redirect"
        }
    ],
    "require": {
        ....
        "dolphiq/redirect": "dev-master"
    }

この状態で

./craft install/plugin redirect

とやってみたところ

*** installing redirect
    > create table {{%dolphiq_redirects}} ...Exception: SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'craft_dolphiq_redirects' already exists
The SQL being executed was: CREATE TABLE `craft_dolphiq_redirects` (
.....

こんな感じのが出ていたので、DB周りの方だろうということで phpMyAdminをみてみる。

DB周りの調整をする

この2つが不要そうでうまく消えなかったってことだろう。

ということでまずはバックアップを取っておく。

./craft backup storage/backups/latest.sql

そのうえで先ほどの2つのテーブルを削除する。

再度CLIでインストール

再度 CLI でインストールしてみる。

$ ./craft install/plugin redirect
*** installing redirect
    > create table {{%dolphiq_redirects}} ... done (time: 0.010s)
    > create table {{%dolphiq_redirects_catch_all_urls%}} ... done (time: 0.007s)
    > add foreign key craft_dolphiq_redirects_id_fk: {{%dolphiq_redirects}} (id) references {{%elements}} (id) ... done (time: 0.021s)
 done
*** installed redirect successfully (time: 0.116s)

問題なく終了。

管理画面で確認しても無事インストールされてた。

よかったよかった。

@BUN @tinybeans には改めて感謝感謝m(_ _)m


ちなみにさっきのバックアップしたのをリストアするのは以下のコマンドでいけるとのこと。

./craft restore storage/backups/latest.sql