MovableTypeでテキストのカスタムフィールドをテキスト(複数行)に移行する方法
やっほぉ。鳥だよ。
ここだけの話、MovableTypeってびみょーーーに融通効かないところがちょとちょこあってさ。
書いてないけど、「テキスト」カスタムフィールドには255文字の文字数制限があるのさ。それ以上になると勝手にチョッキンされるんだ(切り取られる)。
で、それに困った時にはどーするかっていうと、実質文字数が無制限に近い「テキスト(複数行)」ってのに変更してやるのが良いと思うのさ。
でもね、
それがボタン一個でできる!・・・わけではなくて、一旦消して作り直さないと行けないわけで。
「そんな面倒なことやってられっかー」(ノ`´)ノ彡┻┻どがしゃーん
てわけで、以下に移行方法だよ。phpMyAdminが使える前提。
あと、試したMTのバージョンは5.02の場合だよ。もしかしたら他のバージョンのMTだと違うかも。ちょっと見た感じだと、MT4系も同じ構造だったよ。
※もち自己責任でっ
- おもむろにphpMyAdminを立ち上げる。
- 「どうしようどうしよう」と言いながら、
mt_field
テーブルを開く。 - 慌てふためきながら、
field_tag
が対象のタグになっているものを探して編集。あとfield_basename
をメモるφ(.. ) - あわあわ言いながら、
field_type
をtextarea
に変更する。クエリで言うならこんな感じ。
UPDATE `mt_field` SET `field_type` = 'textarea' WHERE `field_tag` = '(対象のテキストフィールドのタグ)'
- そこでいきなり冷静になって、念のために以下のクエリを実行して、データの確からしさを確認する。
SELECT * FROM `mt_entry_meta` WHERE `entry_meta_type` = 'field.(メモしたfield_basename)' LIMIT 0 , 30
- 確認が終わったら「オレのミスだーっ」と叫びながら、以下のクエリを実行する。
UPDATE `mt_entry_meta` SET `entry_meta_vclob` = `entry_meta_vchar_idx` where `entry_meta_type` = 'field.(メモしたfield_basename)'
- 最後にもう一度、以下のクエリを実行してentry_meta_vclobにデータが入っていることを指さし確認。
SELECT * FROM `mt_entry_meta` WHERE `entry_meta_type` = 'field.(メモしたfield_basename)' LIMIT 0 , 30
いじょ!
でわでわ。