前提
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