MTOS create blog

Perlでプログラミング。ブログをコマンドラインプログラムから新規作成する方法がなかなかわからなかったのですが、とりあえずできました。意外と面倒ですが、まぁ、仕方がないのでしょう。Webインタフェース経由で投げていくという方法もありそうなのですが、とりあえずは、コマンドライン方式で。

やりたい内容については、Perlで簡単にできるものはPerl、Javaを使った方が簡単にできるものはJava、シェルスクリプトで全体の処理を流すという方式にしようかと考え中です。1つに絞って開発した方が良さそうな気もしますが、つなげた方がトータル的に楽そうです。とは、メンテナンス性は非常に悪そうです。プラグイン方式も考えてはみたものの、今のところ見通しがたっていないので、採用しないつもりです。

世の中、便利になってきているけど、ちょっと枠からはずれたことをしようとすると、相変わらず苦労が多いですね。当たり前ですが。

MTOSテンプレートの置換

MTOSのテンプレートについて置換が必要になったので、SQLについて確認。文字列を連結したり、置換したりできるので、便利便利。

update mt_template set
template_name=CONCAT(‘prefix_’, template_name) where
template_blog_id=1 and template_id in (1, 2, 3);

update mt_template set
template_name=REPLACE(template_name, ‘prefix_’, ”),
template_type=’widget’
where template_blog_id=1 and template_id in (1, 2, 3);

MTOS検索エラー

MTOSをインストール後、再構築もせず、エントリなども追加しないままサイト検索をしたところ、「エラーが発生しました: Can’t call method “entries_on_index”」というエラーがでてあわてたのですが、きちんとコンテンツを用意してから実行したら、動きました。あせりました。

MTOSアップグレード

Movable Type について、4.x-ja から 5.01-ja への移行方法を確認していたりします。オンラインマニュアルの通りにやるとうまくいかない場合がありました。MySQL5.1を使っていて、DBもUTF-8を使っているのですが、Movable Type 5 の変更点、注意事項、および既知の問題 | Movable Type 5 ドキュメント に書いているとおり、「データベースがMySQL 5.x で、UTF-8を利用している場合は、mt-config.cgiに”SQLSetNames 0″を指定してください。」とすると、文字化けが発生しました。自動生成されるサイトのタイトルが文字化けします。

もしかして、この指定は 5.0までは必要で、5.01では必要ないのかもしれません。この指定をはずしたところ、無事DBのアップデートはできました。

結構複雑なサイトなので、プラグインなどの動作確認も必要なので、この後が大変ですが、まずは第一歩をクリアということで。

sqlite メモ

SQLiteを使う機会も増えてきているので、メモ

コマンドラインではSQLiteのDBファイル名を指定

sqlite3 sample.db

データベース一覧

.databases

テーブル一覧

.tables

テーブル定義の表示

.schema ticket

コマンドラインからのSQL文実行には、次のようなファイルsample.sql を用意する。ここでは、タブ区切りで出力。

.mode tabs
select id, type, time, status, summary from ticket where status not in ('closed') order by id, status;

次のようにして実行。ここでは、Trac のDBの ticketのテーブルを検索している。

sqlite3 db/trac.db < sample.sql

base64

valueのbase64エンコードされた値を得るには下記

$ echo -n value | base64
dmFsdWU=

デコードは下記

$ echo -n dmFsdWU= | base64 -d