LoginSignup
1
1

More than 5 years have passed since last update.

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

Last updated at Posted at 2017-02-01

今さらのMovableType4(MT4)ですが……
どうしても調査せざるを得なくなったので、得た知見を記録しておきます。

どうしても調査せざるを得なくなった理由については別記事にて。
Qiita - MovableType4(MT4)でウェブページを同一MT内の別ブログに移す

前提

MovableTypeって?

数多くある静的CMSのうちの一つです。
公式サイト

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

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

MT4の各テーブル毎のメモ

mt_asset

  • 画像とかの素材=アイテムを管理するテーブル

mt_asset_meta

  • 画像とかに設定されるパラメータが入ってくる
  • 例: image_width 60 みたいな
  • asset_meta_asset_id というカラムがあって、ここに、mt_assetのidが入る
  • このテーブルの固有キーが格納されるカラムは存在しない

mt_association

  • 「ユーザーが特定のブログに対してどういうロールを持っているかなどの関連付けを管理するためのもの」

※コメントで @rryu さんから教えていただきました。

mt_author

  • ログインユーザ
  • パスワードが暗号化もされずに文字列格納されている……

mt_author_meta

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

※コメントで @rryu さんから教えていただきました。

mt_blog

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

mt_blog_meta

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

mt_category

  • ブログ記事とかウェブページとかに設定できる「カテゴリ」管理
  • category_blog_id で、どのブログで使われるかを決める

mt_category_meta

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

mt_comment

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

mt_comment_meta

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

mt_config

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

mt_entry

  • 記事管理
  • 「ブログ記事」も「ウェブページ」も、全部このテーブル内で管理されている
  • ディレクトリはここで管理されていないらしい……
  • 各カラムについて
    • entry_id :固有キー
    • entry_blog_id :どのブログ内の記事か
    • entry_authored_on :公開日時(デイトタイム型)
    • 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 :本文
    • entry_excerpt :要約文?
    • entry_category_id :カテゴリっぽいけれど実は使われていない。罠。酷い。

mt_entry_meta

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

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_ipbanlist

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

mt_log

  • MTのシステムログ記録用
  • かなり巨大に膨れあがるので、後生大事にとっておく必要もなさそう

mt_notification

  • アドレス帳に登録されているメールアドレスに、MTの更新記録などを送信するための管理用
  • 内輪向けサイトなら使われることがあるのかな……

mt_objectasset

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

mt_objectscore

※コメントで @rryu さんから教えていただきました。

mt_objecttag

  • タグ管理
  • mt_tag は古い。こちらは新しい。

※コメントで @rryu さんから教えていただきました。

mt_permission

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

mt_placement

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

mt_plugindata

  • プラグイン管理

mt_role

  • 権限グループ

mt_session

  • セッションデータ
  • 定期的に掃除して良いと思われる

mt_tag

  • タグ管理
  • こちらは古い。 mt_objecttag が新しい。

※コメントで @rryu さんから教えていただきました。

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_templatemap

  • テンプレートが静的ファイルに出力される際の形式マスタ的な
  • templatemap_archive_type
    • 値の例 :Category, Individual, Page, Yearly, Monthly...

mt_touch

  • 設定変更をおこなったブログや時間の管理
  • これ要るのか……??

mt_trackback

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

mt_ts_exitstatus, mt_ts_funcmap, mt_ts_job

  • 「TheSchwartzというジョブキューで使います。tools/run-periodic-tasks などで使用しています。」

※コメントで @rryu さんから教えていただきました。

  • つまり、プラグインで作成されたテーブル?ということで、MT4内にデフォルトで存在しているわけではなさそうですね。

オマケ:MT4 と MT6 との差異

MT6については、以前、別件でザーッと見たことがあるので、その時に知ったことです。

概要

  • 大枠の変化は無い
  • MT6にしか無いテーブルがいくつかある(後述)
  • それにともなって、キーとなるidカラムが有ったり無かったり
  • つまり、一部テーブル間のリレーションには変更があって、それが大きな影響に繋がり、単純なMT4→MT6インポートでは済まない原因になっている

MT4にしか無いテーブル

  • というのは無い

MT6にしか無いテーブル

  • mt_accesstoken
  • mt_author_summary
  • mt_entry_rev
  • mt_entry_summary
  • mt_failedlogin
  • mt_filter
  • mt_formatted_text
  • mt_template_rev

今回、これらについては注記しない。

1
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1