【EasyMail】2.00から2.01へバージョンアップ時のユーザーに関するDB設定

EasyMailのインストール記事を前回書きました。

この記事の中で、設定できるユーザー権限が増えるかもしれないという予告について触れていましたが、早速バージョンアップで対応したようです。

EasyMailバージョンアップのお知らせ | 無料のメールフォーム作成ツール「EasyMail(イージーメール) 」

今回追加されたのは「デモ」という閲覧のみの権限です。個人的には自身が作成したフォームのみ編集できる権限があれば嬉しいのですが、それは今後のバージョンアップに期待しましょう。

早速バージョンアップをしようと思ってもダッシュボードにそのような表示はなく、どうやら手動でファイルを置き換える作業が必要のようです。

また、ユーザーに関するDBの設計が変更されているようで、同じDBを設定すると管理者権限で入れないことがわかりました。MySQL側での設定が必要になりました。

バージョンアップの手順

バージョンアップはダッシュボードから自動で行える機能は今のところなく、公式サイトから最新バージョンのファイルをダウンロードして、サーバーにアップロード、再度セットアップするという手順が必要です。

試しにセットアップをせずにDBのアクセス情報が記述されたファイル (\config\database.php) 以外のファイルを置き換えるというのを試しましたが、ログインページが正しく表示されませんでした。

アップロードと削除にはかなりの時間を要するので、アクセスできない時間を短くするのであれば、

  1. 1が完了したらもう一つ適当なフォルダを作成してバージョンアップ前のファイルをすべて移動
  2. 1のファイルを、元々バージョンアップ前のファイルがあったフォルダに移動
  3. ブラウザからアクセスしてセットアップを実行
  4. 適当なフォルダを作成して最新バージョンのファイルをアップロード

この行程が最も早いと思います。フォルダ間のファイル移動はそれほど時間がかかりませんので、移行の時間を短くできますし、失敗したとしてもすぐに元の状態に戻せます。

このときに、編集したテーマがあればそのファイルを取り置いておきましょう。バージョンアップ後にフォルダへ戻すことで引き続き使うことができます。

バージョン情報はダッシュボードのトップに表示されています。こちらはバージョンアップ前。

こちらがバージョンアップ後。この画面が表示されれば無事成功です。

ユーザー権限の設定

これだけで済むのであればわざわざ今回のような記事化はしませんでした。

作ったフォームを引き続き使うわけですから、セットアップ時に元々使っていたDBで設定を行いました。

するとダッシュボードのメニューにプラグインとユーザーが表示されないではありませんか。つまり管理者権限で設定したはずのユーザーが管理者権限で入れなくなっているということです。

この現象はまっさらなDBでセットアップすれば起きません。ということは元から使用していたDBでは不備があるということです。

ユーザーに関するDB構造

というわけでphpMyAdminでDBの構造を確認します。

ここからしばらく確認のターンなので、手っ取り早く設定方法について知りたい方は「設定の変更」の見出しまで飛んでください。

user

まずはこちらがバージョンアップ前の「user」というテーブルの構造です。

#名前データ型照合順序属性NULLデフォルト値その他
1idbigint(20)UNSIGNEDいいえなしAUTO_INCREMENT
2namevarchar(255)utf8mb4_unicode_ciいいえなし
3emailvarchar(255)utf8mb4_unicode_ciいいえなし
4email_verfied_attimestampはいNULL
5passwordvarchar(255)utf8mb4_unicode_ciいいえなし
6two_factor_secrettextutf8mb4_unicode_ciはいNULL
7two_facrot_recovery_codestextutf8mb4_unicode_ciはいNULL
8remember_tokenvarchar(255)utf8mb4_unicode_ciはいNULL
9created_attimestampはいNULL
10updated_attimestampはいNULL
11lanuguagevarchar(255)utf8mb4_unicode_ciいいえなし
12roleint(11)はいNULL
13login_flagint(11)いいえなし

続いてバージョンアップ後。

#名前データ型照合順序属性NULLデフォルト値その他
1idbigint(20)UNSIGNEDいいえなしAUTO_INCREMENT
2namevarchar(255)utf8mb4_unicode_ciいいえなし
3emailvarchar(255)utf8mb4_unicode_ciいいえなし
4email_verfied_attimestampはいNULL
5passwordvarchar(255)utf8mb4_unicode_ciいいえなし
6two_factor_secrettextutf8mb4_unicode_ciはいNULL
7two_facrot_recovery_codestextutf8mb4_unicode_ciはいNULL
8remember_tokenvarchar(255)utf8mb4_unicode_ciはいNULL
9current_team_idbigint(20)UNSIGNEDはいNULL
10profile_photo_pathvarchar(2048)utf8mb4_unicode_ciはいNULL
11login_flagint(11)いいえなし
12created_attimestampはいNULL
13updated_attimestampはいNULL
14lanuguagevarchar(255)utf8mb4_unicode_ciいいえなし

バージョンアップ前にはあった「role」が消えて、「current_team_id」と「profile_photo_path」が増えています。カラムの順番も変わってますね。

おそらくユーザー権限に関しては、これまで「role」だったのが「current_team_id」に置き換わったようです。

team_user

また、team_userとteamsというテーブルがバージョンアップ前からありましたが、正常にバージョンアップしたものでは行が追加されていました。これらも追加が必要そうです。

カラム
id1
team_id1
user_id1
roleadmin
created_at作成日時
updated_at更新日時

teams

カラム
id1
user_id0
nameeasy_mail
personal_team0
created_at作成日時
updated_at更新日時

設定の変更

それではここからが設定の変更内容のまとめです。

「user」テーブル

「role」を「current_team_id」に変更

userテーブルを開き、構造タブから「role」の変更をクリック。

こんな感じで設定します。

名前current_team_id
データ型BIGINT
長さ/値20
デフォルト値NULL
属性UNSIGNED
NULLチェック
カラムを移動させる‘remember_token’

「profile_photo_path」の追加

構造タブの下の方にカラム追加の項目があります。ここで1個のカラムを追加します。

位置は先ほど変更した「current_team_id」の後に設定します。

こんな感じで設定します。

名前profile_photo_path
データ型VARCHAR
長さ/値2048
デフォルト値NULL
照合順序utf8_general_ci
NULLチェック

「team_user」テーブル

挿入タブからこのように入力して行を追加します。

id1
team_id1
user_id1
roleadmin
created_at関数CURRENT_TIME
updated_at関数CURRENT_TIME

「teams」テーブル

同様に「teams」テーブルでも挿入タブからこのように行を追加します。

id1
user_id0
nameeasy_mail
personal_team0
created_at関数CURRENT_TIME
updated_at関数CURRENT_TIME

以上の設定で管理者権限で入れるようになりました。

他に変更しないといけない箇所があるかもですが、とりあえずこれでいいと思います。

もし他にもあったら追記しようと思います。

Web関連
スポンサーリンク

コメント

コメントする前にお読みください

プログラミングに関する質問について、詳細なコードはお答えしませんのでご了承ください。
また、迷惑コメント防止のために初回のコメント投稿は承認制です。投稿が反映されるまで少し時間がかかります。