タグ「sqlite」 の検索結果(1/1)

2010年7月 7日

MT3.1で全エントリのコメント設定を一括変更【いまさら】


B2HSの凍結作業を開始したのですが、なんだかんだ言ってコメントスパムにまだ悩まされているので、直近のいくつかのエントリを除いてコメントを追加投稿不可に変更したいな、と。

で、MT3.1で全エントリのコメント設定を一括して変更したいのですが、それっぽい既存メニューも、プラグインは見つからず。
じゃあDBを直接操作しよう、と。

http://code.google.com/p/ogawa/wiki/MT_Database_Converter
を参考にしてBerkeleyDBからsqliteに変換。

シェルログイン後、dbディレクトリに移動。
% sqlite3 sqlite.db

> .output dump.txt
> .dump

less dump.txt

CREATE TABLE mt_entry (
entry_id integer not null primary key,
entry_blog_id integer not null,
entry_status smallint not null,
entry_author_id integer not null,
entry_allow_comments boolean,        ←お、それっぽいもの発見。
entry_allow_pings boolean,
entry_convert_breaks varchar(30),

ヘルプを確認。

コメント
ユーザーに、このエントリーにコメントを投稿することを許可するかどうかを指定します。 全部で「なし」、オープン」、または「クローズ」の3つのオプションがあります。 「なし」を選択すると、訪問者はコメントを投稿することも、既存のコメントを閲覧することもできません。 「オープン」を選択すると、訪問者はコメントを投稿することも、既存のコメントを閲覧することもできます。 「クローズ」を選択すると、訪問者は、既存のコメントを閲覧することはできますが、新しいコメントを投稿することはできません。 これは、サイトにある古い投稿へのコメントをオフにし、そのまま古いコメントをずっと表示しておきたい場合に便利です。

なんでbooleanなのに設定可能値が3つあるねん!

と思いつつも、どうやら「クローズ」にあたる2を放り込めば目的は達成できるらしいので。

> select entry_id,entry_allow_comments from mt_entry;
> update mt_entry set entry_allow_comments='2';
> select entry_id,entry_allow_comments from mt_entry;
> .quit

管理画面から各エントリーを確認してみると、きちんとクローズになっている様なので、全ページを再構築。

おkっぽい。