11 October 2006

Movable Type の SQLite でのデータファイル

mt-config.cgi で、SQLite と MySQL の両方が使える状態でインストールすると、標準で SQLite が利用されるようだ。

mt-config.cgi
##### MYSQL ##### ObjectDriver DBI::mysql Database mt DBUser username DBPassword mypassword DBHost dbserver.mycompany.co.jp ##### SQLITE ##### ObjectDriver DBI::sqlite Database ./db/mtdb

このように、どちらも利用できるように書いておくと、何の問い合わせも無く SQLite が使われていた。

www/mt/db ディレクトリに作成されているデータベースファイルを開いて構造を見てみる。

Shell Terminal での実行
%sqlite3 mtdb SQLite version 3.3.6 Enter ".help" for instructions sqlite> .databases seq name file --- --------------- ------------------------------------------------------ 0 main /home/username/www/mt/db/mtdb sqlite> .table mt_author mt_entry mt_objecttag mt_tag mt_blog mt_fileinfo mt_permission mt_tbping mt_category mt_ipbanlist mt_placement mt_template mt_comment mt_log mt_plugindata mt_templatemap mt_config mt_notification mt_session mt_trackback

エントリー(記事)を管理しているテーブル構造を表示してみる

sqlite> .schema mt_entry CREATE TABLE mt_entry ( entry_id integer not null primary key, entry_allow_comments boolean, entry_allow_pings boolean, entry_atom_id varchar(255), entry_author_id integer not null, entry_basename varchar(255), entry_blog_id integer not null, entry_category_id integer, entry_convert_breaks varchar(30), entry_excerpt text, entry_keywords text, entry_pinged_urls text, entry_status smallint not null, entry_tangent_cache text, entry_text text, entry_text_more text, entry_title varchar(255), entry_to_ping_urls text, entry_week_number integer, entry_created_on datetime, entry_created_by integer, entry_modified_on timestamp not null, entry_modified_by integer ); CREATE INDEX mt_entry_author_id on mt_entry (entry_author_id); CREATE INDEX mt_entry_basename on mt_entry (entry_basename); CREATE INDEX mt_entry_blog_id on mt_entry (entry_blog_id); CREATE INDEX mt_entry_created_on on mt_entry (entry_created_on); CREATE INDEX mt_entry_modified_on on mt_entry (entry_modified_on); CREATE INDEX mt_entry_status on mt_entry (entry_status); CREATE INDEX mt_entry_week_number on mt_entry (entry_week_number);

その内容をダンプしてみる

sqlite> select * from mt_entry; 25|2|<small> ・・006/10/09(譛・ 18:17:16 ID:???0 繝サ繝輔Λ繝ウ繧ケ邏吶ヵ繧」繧ャ繝ュ縺ォ譌・譛ャ莠コ蝗」菴捺羅陦悟ョ「繧呈音蛻、縺吶 … 何が何やら、わかりませんな(EUCだから、画面ではさっぱり分からん)