拙著「個人投資家は低位株で儲けなさい」が発売されました。
株価が安い「低位株」に投資する方法を解説しています。
自由国民社刊で、定価1,512円(消費税込み)です。
カスタムフィールドの型を変える(その2)
昨日の続きで、データベースを直接に操作して、カスタムフィールドの型を変える方法を紹介します。
今日は、変更前と後とで、データの保存先の列が変わらない場合を取り上げます。
1.注意事項
この記事で取り上げる方法では、データベースを直接に操作します。
操作を間違うと、Movable Typeのデータ(特にカスタムフィールドのデータ)が壊れることもあり得ます。
データベースを操作する前に、データを必ずバックアップしておいてください。
また、バックアップしたデータを正しく復元できることも確認しておいてください。
操作ミスでデータが壊れたとしても、当方は責任を負いません。
2.SQLを実行する
昨日の記事で述べたように、カスタムフィールドのデータは、○○○_metaテーブルに保存されます。
また、カスタムフィールドの型に応じて、保存先の列が異なります。
型を変更する前後で保存先の列が同じ場合は、mt_fieldテーブルを書き換えるだけで済みます。
例えば、テキストのカスタムフィールドをドロップダウンに変更する場合、どちらの型も保存先の列はvchar_idxです(昨日の記事を参照)。
したがって、mt_fieldテーブルを書き換えるだけで済みます。
mt_fieldテーブルを書き換えるには、phpMyAdminにログインし、Movable Typeのデータベースを操作する状態にして、グローバルナビゲーションの「SQL」をクリックします。
そして、以下のSQLを実行します。
UPDATE mt_field SET field_type = '型名' WHERE field_blog_id = ブログ/ウェブサイトのID AND field_basename = 'ベースネーム'
例えば、IDが1番のブログに、ベースネームが「pref」というテキスト型のカスタムフィールドがあるとします。
そして、このカスタムフィールドをドロップダウン型に変えたいとします。
この場合、以下のSQLを実行します。
UPDATE mt_field SET field_type = 'select' WHERE field_blog_id = 1 AND field_basename = 'pref'
なお、システムのカスタムフィールドを変更する場合は、ブログ/ウェブサイトのIDのところに「0」を入れます。
例えば、上の例で、カスタムフィールドがシステムのものである場合は、以下のSQLを実行します。
UPDATE mt_field SET field_type = 'select' WHERE field_blog_id = 0 AND field_basename = 'pref'