TopMovable TypeMySQL > 2005年6月
2005年6月22日

MySQLでエントリーのフィールドサイズを拡張する

MySQLではエントリーのデータ型に「TEXT型」というものを用いており、最大65535 バイトまで格納することができます。で、このサイズを超える場合、当然のことながらDBに適正に保存することができません(最大長に入らない部分が切り捨てられます。)。実は当サイトを Berkeley DB から MySQL に移行した際、テンプレートデータを記したエントリーが途中で途切れてしまい、調べているうちに上記の原因であることが判明しました。
ということで、MySQLでのフィールドサイズの拡張方法です。インストール前での実行方法ですので、その点は予めご了承ください。

Movable Type インストールアーカイブに含まれている schemas/mysql.dump を任意のエディタで開いて下記のように修正します。

create table mt_entry (
    entry_id integer not null auto_increment primary key,
    entry_blog_id integer not null,
    entry_status tinyint not null,
    entry_author_id integer not null,
    entry_allow_comments tinyint,
    entry_allow_pings tinyint,
    entry_convert_breaks varchar(30),
    entry_category_id integer,
    entry_title varchar(255),
    entry_excerpt text,
    entry_text textmediumtext,
    entry_text_more text,
    entry_to_ping_urls text,
    entry_pinged_urls text,
    entry_keywords text,
    entry_tangent_cache text,
    entry_created_on datetime not null,
    entry_modified_on timestamp not null,
    entry_created_by integer,
    entry_modified_by integer,
    entry_basename varchar(50) not null,
    index (entry_blog_id),
    index (entry_status),
    index (entry_author_id),
    index (entry_created_on),
    index (entry_basename)
);

mediumtext は最大長 16777215 バイトです。ちなみに longtext というものもあり、こちらは最大長 4294967295 バイトです。
テンプレートのフィールドサイズを拡張する場合は、同じファイル内の下記の部分を変更します(多分)。

create table mt_template (
    template_id integer not null auto_increment primary key,
    template_blog_id integer not null,
    template_name varchar(50) not null,
    template_type varchar(25) not null,
    template_outfile varchar(255),
    template_rebuild_me tinyint default 1,
    template_text textmediumtext,
    template_linked_file varchar(255),
    template_linked_file_mtime varchar(10),
    template_linked_file_size mediumint,
    template_created_on datetime not null,
    template_modified_on timestamp not null,
    template_created_by integer,
    template_modified_by integer,
    template_build_dynamic tinyint,
    unique (template_blog_id, template_name),
    index (template_type)
);

修正した後、Movable Type をインストールすることで指定したサイズでDBが作成されます。

Comments [0] | Trackbacks [1]
Now loading...
ギターに入った猫
掲載広告募集
Styles
Font Size
Default
For defective color vision
Gray Scale
RGB Color
Search this site

このブログをメールで購読する by:FeedBurner

AMN
Categories
Monthly Archives
2020年
2019年
2018年
2017年
2016年
2015年
2014年
2013年
2012年
2011年
2010年
2009年
2008年
2007年
2006年
2005年
2004年
2003年
BlogPeople
Syndicate this site
FeedBurner(RSS1.0/RSS2.0/Atom)
Counter
これまでのアクセス
Powered by
Movable Type 6.0.3