MovableType

MovableType7(MT7)のテーブル構造

More than 1 year has passed since last update.


前提


MovableTypeって?

数多くある静的 CMS のうちの一つです。

公式サイト


MT7のver.について

7.α.0.2(2017/11/24 時点)


以前に書いた記事(MT4)

MovableType4(MT4)で使われるMySQLテーブルと各カラムの説明

MT4にはあってMT7にはないテーブル、また、その逆パターンもあります。


「要調査」となっている項目

調査しないとなー、と思っているものです。それ以外の項目も含めて、この記事については、色々と分かり次第、随時更新して参ります。


内部で使用されているデータベース

MySQL です。

というわけで、この中身をざっくり見ていきます。


mt



  • データベース名が mt です

  • 全 55 テーブル

  • 個別の各テーブルは以下の通り


mt_accesstoken


  • 要調査

  • accesstoken_session_id という id カラムがあるので、 mt_session に関連するらしい


mt_asset


  • asset (アイテム。画像とか)の管理

  • asset_blog_id で、どのブログで使われるかを決める


mt_asset_meta


  • アイテム管理に関連するmeta系テーブル。 mt_author_meta の項を参照

mt_association

- 「ユーザーが特定のブログに対してどういうロールを持っているかなどの関連付けを管理するためのもの」( @rryu さん曰く)


mt_author


  • ログインユーザ

  • 良かった、ちゃんとパスワードが暗号化されている……(MT4では暗号化されていなかった)


mt_author_meta


  • 「meta系のテーブルはMT::Authorなどのクラスのカラム定義で型がstring metaのようになっているものの保存に使われます。その他にカスタムフィールドの値の保存などに使われます」( @rryu さん曰く)


mt_author_summary


  • 要調査


mt_blog


  • ブログ管理

  • 「ブログ記事」ではない


mt_blog_meta


  • ブログ管理に関連するmeta系テーブル。 mt_author_meta の項を参照


mt_category


  • ブログ記事とかウェブページとかに設定できる「カテゴリ」管理

  • category_blog_id で、どのブログで使われるかを決める


mt_category_meta


  • カテゴリ管理に関連するmeta系テーブル。 mt_author_meta の項を参照


mt_category_set


  • 要調査

  • category_set_blog_id で、どのブログで使われるかを決める


mt_cd


  • cd は content_data の略っぽい

  • cd_blog_id で、どのブログで使われるかを決める

  • cd_content_type_id で、どの Content Types で使われるかを決める

  • cd_data にJSON形式で諸々の値が格納されている( @rryu さん、コメントありがとうございました)

  • cd_data は mediumblob 型。このカラムを認識しないクライアントソフトがあるようです


mt_cd_meta


  • content_data に関連するmeta系テーブル。 mt_author_meta の項を参照


mt_cd_rev


  • 要調査

  • cd_rev_cd_id が、mt_cd の cd_id なので、mt_cd についての revision 管理?


mt_cf


  • Content Types の各フィールド定義情報と思われる

  • cf は content_fields の略っぽい

  • cf_blog_id で、どのブログで使われるかを決める

  • cf_content_type_id で、どの Content Types で使われるかを決める

  • cf_related_content_type_id ? 要調査


mt_cf_idx


  • mt_cd, mt_cf, mt_content_type とを結びつけるインデックス用のテーブルっぽい( @rryu さん、コメントありがとうございました)

  • cf_idx は content_field_index の略で間違いなさそう

  • cf_idx_content_data_id : mt_cd の id

  • cf_idx_content_field_id : mt_cf の id

  • cf_idx_content_type_id : mt_content_type の id


mt_comment


  • コメント管理

  • comment_blog_id と comment_entry_id とで、どれへのコメントかが決まる


mt_comment_meta


  • コメント管理に関連するmeta系テーブル。 mt_author_meta の項を参照


mt_config


  • MT全体の設定

  • 1レコード1カラム内に、改行区切りで大量の設定が書かれている


mt_content_type


  • Content Types の親

  • content_type_blog_id で、どのブログで使われるかを決める

  • 何でこれだけ略していないのか……


mt_entry


  • 記事管理

  • 「ブログ記事」も「ウェブページ」も、全部このテーブル内で管理されている

  • ディレクトリはここで管理されていないらしい……

  • 各カラムについて(抜粋)


    • entry_id :固有キー

    • entry_blog_id :どのブログ内の記事か

    • entry_authored_on :公開日時(datetime型)

    • entry_atom_id :固有キーとか色々合成されているフィールド

    • 入力される書式例 : tag:hoge.com,2017:/blog_name//99.123456

    • 上記例の 2017 にあたる数字は、このレコードの entry_authored_on の year 部分である

    • 上記例の 99 にあたる数字は、このレコードの entry_blog_id である

    • 上記例の 123456 にあたる数字は、このレコードの entry_id である

    • entry_basename :ファイル名

    • entry_class :entry または page

    • entry :ブログ記事

    • page :ウェブページ

    • entry_title :タイトル

    • entry_text :本文



  • 他のカラムについてはこれから要調査


mt_entry_meta


  • 記事管理に関連するmeta系テーブル。 mt_author_meta の項を参照


mt_entry_rev


  • 要調査

  • entry_rev_entry_id が、mt_entry の entry_id なので、mt_entry についての revision 管理?


mt_entry_summary


  • 要調査

  • entry_summary_vinteger_id は、何の id ?


mt_failedlogin


  • ログイン失敗してアカウントロックされた記録


mt_field


  • カスタムフィールドのフィールド定義

  • field_blog_id で、どのブログで使われるかを決める

  • field_obj_type で、「ブログ記事」「ウェブページ」などのどこに表示されるか決まる


mt_fileinfo


  • 静的ページのファイル名・保存先ディレクトリなどの管理

  • 各カラムについて(抜粋)


    • fileinfo_id :固有キー

    • fileinfo_archive_type :よくわからない……

    • 値の例 :index, Page, Individual, Monthly

    • fileinfo_entry_id :mt_entryとの外部キー

    • fileinfo_file_path :サーバ内の絶対path

    • fileinfo_url :ドメイン以下のファイルpath

    • fileinfo_template_id :mt_templateとの外部キー

    • fileinfo_templatemap_id :mt_templatemapとの外部キー




mt_filter


  • 要調査

  • filter_blog_id で、どのブログで使われるかを決める

  • filter_author_id は、どのユーザーが作ったか?


mt_formatted_text


  • 要調査

  • formatted_text_blog_id で、どのブログで使われるかを決める


mt_ipbanlist


  • アクセス禁止IPの管理とか


mt_log


  • MTのシステムログ記録用

  • かなり巨大に膨れあがるので、後生大事にとっておく必要もなさそう


mt_notification


  • アドレス帳に登録されているメールアドレスに、MTの更新記録などを送信するための管理用

  • 内輪向けサイトなら使われることがあるのかな……


mt_objectasset


  • 記事とアイテムとを紐づけるための中間テーブル


mt_objectcategoy


  • 要調査

  • objectcategory_blog_id, objectcategory_category_id, objectcategory_cf_id, objectcategory_object_id … というように id が4つあるので、何らかの中間テーブル?


mt_objectscore


  • トピックや記事のお気に入り登録機能 のためのもの( @rryu さん曰く)


mt_objecttag


  • タグ管理


mt_permission


  • mt_author(ユーザ)の権限管理


mt_placement


  • カテゴリと記事とを紐付けるための中間テーブル


mt_plugindata


  • プラグイン管理


mt_role


  • 権限グループ


mt_session


  • セッションデータ

  • 定期的に掃除して良いと思われる


mt_tag


  • タグ管理

  • こちらは古い。 mt_objecttag が新しい( @rryu さん曰く)

  • MT7なのにまだ残ってる? 後方互換のため?


mt_tbping


  • トラックバック管理


mt_tbping_meta


  • トラックバック管理に関連するmeta系テーブル。 mt_author_meta の項を参照


mt_template


  • テンプレート管理

  • 各カラムについて


    • template_id :固有キー

    • template_blog_id :どのブログか

    • template_identifier : NULL許可という謎のフィールド

    • template_name :管理画面上で表示される名称

    • template_outfile :静的ファイルとして出力される場合のファイル名

    • template_text :本文

    • templatetype

    • 値の例 :index, archive, comment_preview, comment_response, dynamic_error, individual, popup_image, search_results, widget, widgetset…




mt_template_meta


  • テンプレート管理に関連するmeta系テーブル。 mt_author_meta の項を参照
    mt_template_rev

  • 要調査

  • template_rev_template_id が、mt_template の template_id なので、mt_template についての revision 管理?


mt_templatemap


  • テンプレートが静的ファイルに出力される際の形式マスタ的な

  • templatemap_archive_type


    • 値の例 :Category, Individual, Page, Yearly, Monthly…




mt_touch


  • 要調査

  • touch_blog_id で、どのブログで使われるかを決める

  • touch_object_type の値が、 author, page, template, folder, category


mt_trackback


  • これもトラックバック管理


mt_ts_error


  • 主キー:ts_error_error_time(タイムスタンプ)


mt_ts_exitstatus, mt_ts_funcmap, mt_ts_job


  • 「TheSchwartzというジョブキューで使います。tools/run-periodic-tasks などで使用しています」( @rryu さん曰く)

  • デフォルトで存在しているんですね


MT4~7におけるテーブルの差


MT4にしか無いテーブル


  • というのは無い


MT6(あるいはMT5)で追加されたテーブル


  • mt_accesstoken

  • mt_author_summary

  • mt_entry_rev

  • mt_entry_summary

  • mt_failedlogin

  • mt_filter

  • mt_formatted_text

  • mt_template_rev


MT7で追加されたテーブル


  • mt_cd

  • mt_cd_meta

  • mt_cd_rev

  • mt_cf

  • mt_cf_idx

  • mt_content_types