トップ 最新 追記
RSS feed

ただのにっき


2015-02-06(金) [長年日記]

Heroku上のtDiaryへデータを移行する

ブラウザでポチポチするだけでHeroku上にtDiaryをデプロイできるようになったわけだが、従来からレンタルサーバ的な場所でtDiaryを運用していた人にとってはデータを移行できなければ意味がないだろう。これもいちおうできるようになっている。が、さすがにこれをブラウザだけでやるのは難しいので、unix系システム上でコマンドラインを使うことになる。まぁ、現時点でtDiaryを運用してる人はそういう環境にはそんなに困らない……はず。

必要なコマンドは ruby、git、bundler。それぞれ最新のものをご用意下さい。また、同一ホスト上に既存のtDiaryのデータ(@data_path配下)が揃っている必要があります。

まずは GitHubからtdiary-coreを入手してherokuブランチへ:

% git clone http://github.com/tdiary/tdiary-core.git
% cd tdiary-core
% git checkout heroku

bundlerで必要なパッケージを入手すると、tdiary-mongodb-convertコマンドが使えるようになる(←今回使いたいのはコレ):

% bundle install --path vendor/bundle   (←けっこう時間かかる)
% bundle exec tdiary-mongodb-convert
Usage: tdiary-mongodb-convert [options] <data_path>
    -c, --conf=CONF                  store only tdiary.conf
    -s, --style=STYLE                style path
    -m, --mongo=URL                  URL of mongoDB

tdiary-mongodb-convertはtDiaryのデフォルト形式(テキスト)のデータを、MongoDBにアップロードするコマンド。アップロードをするにあたって、現在Herokuで使っているMongoDBの接続先情報を得ておく*1。ブラウザでHerokuを開いて、前回作成したアプリの「Settings」をクリック:

[スクリーンショット]HerokuアプリのSettingsタブ

「Config Variables」にある「Reveal Config Vars」をクリックするといろんなプラグインの設定が出てくるので、「MONGOLAB_URI」の値(mongodb:で始まってる長い文字列)を控えておく。

さて、まずはtDiaryの設定をアップロードする。@data_pathの下にある方のtdiary.conf。これを-cオプションに指定する:

% bundle exec tdiary-mongodb-convert -c 【@data_pathのパス】/tdiary.conf -m 【先ほど控えたmongoDBのパス】
    :
    :

ちゃんとアップロードできたかどうかは、HerokuのResourcesタブからMongoLabに飛ぶとconfというCollectionがあることで確認できる。なお、現在使っているものをそのままアップロードすると日記の編集などでエラーになる場合がある。その場合はtdiary.confをエディタで開いて、@base_urlやCSRF関連の設定を削除してからやり直すと良い(このへんはバッドノウハウなのでなんとかしたいところ)。

続いてデータ本体をアップロードする:

% bundle exec tdiary-mongodb-convert -s ./lib/tdiary/style -m 【先ほど控えたmongoDBのパス】 【@data_pathのパス】
    :
    :

長年日記をつけてる場合はここでけっこうな時間がかかるので、のんびり待とう。これでデータのアップロードは完了したはず。サイトにアクセスして、プラグインまわりのチェックをしましょう。

この「けっこうな時間」の部分、ネットワーク越しにアメリカにあるDBサーバとやりとりしてるせいなので、実はローカルにMongoDBを立ててそこに向けてアップロードすればかなり短縮できる(対Herokuで5分かかったデータがローカル相手だと数秒で済んだ)。あとはmongoexport / mongoimportコマンドでHerokuの方に移せば良い。後述するカテゴリの問題もこれで解決できる。

それから、DBに入るのは日記の本文だけなので、imageプラグインによる画像は元環境に残ったままだ。これをどうするかはけっこうな問題なんだけど、ある程度の期間運用してきた日記の場合はHerokuに送る量じゃないので、別の方法で解決しないといけない。今後つける日記ではオンライン写真サービスを使うことで代替できるのだけど(個人的なオススメはpicasaプラグイン。あとはたぶんflickrプラグインも使えるんじゃないかな)、過去の分はどっかに置いて、リンクを貼り直さないといけない。tDiary.Netではこんなプラグインを書いて、(imageプラグインの指定はそのままで)旧サーバにある画像を指すように書き換えている*2

で、さきほど触れたカテゴリの問題だけど、移転先にはカテゴリインデックスがない。ので、カテゴリプラグインの設定画面から再作成をすればいいのだけど、これもまた時間がかかる上に、Herokuは30秒でタイムアウトしてしまうので、ブラウザからはエラーに見えるのだ。ただ、処理自体は動き続けているはずなので、Herokuに処理を殺されないようにたまにアクセスしながら待つと良い。MongoLabのpluginコレクションが従来のカテゴリの数くらいになれば完了だ。もちろん、いったんローカルで動かせる場合は、こっちで再作成してからDBをコピーするのが快適だ。

Tags: tDiary heroku

*1 herokuコマンドを使い慣れている人は「heroku config:get MONGOLAB_URI -a アプリ名」を実行してもよい。

*2 ちょっと改造すれば他の環境でも使えるはず。旧imageと併用できないことに注意。

本日のツッコミ(全3件) [ツッコミを入れる]

snoozer05 [この内容を実際にやってみたときに以下の内容でちょっとハマったのですが、これはどういう手順で進むのが適切でしょうか....]

ただただし [今のところそれが正解です、すみません。 スタイルはgemで入れると探索パスに自身を入れる仕組みを持ってるんだけど、..]

snoozer05 [なるほど...!! ]


2015-02-05(木) [長年日記]

「すてきにハンドメイド」が放送された

昨年12月に参加した、NHK「すてきにハンドメイド」のイベントの回が放送された。

イベント会場のシーンでは編み物に不慣れな男性や子供たちへのインタビューがメインになる中で、うちの夫婦が中山エミリと会話しているところがほぼ全部流されて、二人してぎゃーぎゃー言いながら観てた。まぁ「編み物の魅力を理詰めで考えてる男性」というステレオタイプをきっちり演じているのだから(←もちろんわざと)、TV的には映さない選択肢はないよねー。

番組の主目的として当然ながら編み方の解説があるのだけど、もちろん講師であるケストラーさんのゴツい手がアップになるわけで、編み物の番組としてなかなか異色な感じになっていて良かった。とはいえ、あれをみて実際に自分で編んでみようと思い立つ未経験者はどれくらいいるんだろう。そもそも未経験者は番組見ないだろうし、ターゲットにリーチしないのでは……。

放送のこと、直前の告知はあえてしなかったのにきっちり見ている知人が数人いて恐ろしいかぎりです。まぁ、再放送あるらしいけどね。

Tags: knit
本日のツッコミ(全2件) [ツッコミを入れる]

ブチャ猫 [再放送の録画を見ました。息子に確かめてないけど多分あのご夫婦。 この日記の右上の似顔絵から想像しています。 久し..]

ただただし [何度も書いてますけど、アイコンは似てないですからね!w]


2015-02-04(水) [長年日記]

連環宇宙 (創元SF文庫) (創元SF文庫)(ロバート・チャールズ・ウィルスン)

三部作の一作目はかなり気に入ったと書いておきながら、最終作である本書を読むまでに3年ほったらかしだったのは、二作目の印象があまりパッとしなかったのと、同じ作者の別の作品はもうひと息という感じだったせいかなー。Amazonが出版を知らせてくれなかったというのもある(笑)。

でもまぁ、けっこう楽しめたかも。スピン後の地球の人々と、そこからさらに一万年後の人々の時間が交錯する、ちょっと時間SFっぽい要素もあるストーリーで、ウィルスンらしい現実感のある人間ドラマも相まって遠未来を舞台にしているわりには感情移入しやすかった。登場人物の背景に「取ってつけた」感がないのが良い。

集合意識となった人類に、大脳皮質を共有する一派と辺縁系を共有する一派があって……という設定が一番おもしろかった(けど全体を共有する派閥がないのはなぜなんだ)。一方、仮定体の正体はありきたりで、面白くもなんともなかったなぁ。けっきょく、SF的なディテールはそんなに面白くないけど人間ドラマで読ませるという、一作目と同じ系統だったのだった。宇宙の終焉まで描いておいて、それでいいのかという不満は残るが。

時間封鎖〈上〉 (創元SF文庫)
ロバート・チャールズ ウィルスン
東京創元社
¥97

時間封鎖〈下〉 (創元SF文庫)
ロバート・チャールズ ウィルスン
東京創元社
¥50

無限記憶 (創元SF文庫)
ロバート・チャールズ・ウィルスン
東京創元社
¥106

連環宇宙 (創元SF文庫) (創元SF文庫)
ロバート・チャールズ・ウィルスン
東京創元社
¥204

Tags: book sf

トップ 最新 追記
RSS feed