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