プログラミング的なSomething

読者です 読者をやめる 読者になる 読者になる

プログラミング的なSomething

ITエンジニア(?)目線で生活・自転車・トレーニング話を綴ります

DataMapperのマイグレーション用スクリプトが完成したのでさらす

ツッコミ歓迎です。モデルも合わせて公開します。


まずモデル。

次にマイグレーションスクリプト。

取り込んだデータはSQLiteで保存しています。Select文とschemaです。

sqlite> select * from posts;
1|うんこを流す場所は?|1|2012-08-24T06:50:12+09:00
2|ちんちんを最後に洗ったのはいつ?|0|2012-08-24T06:50:12+09:00
3|おちんちんが出ているのはなぜ?|0|2012-08-24T06:50:12+09:00

sqlite> select * from questions;
1|便器|自室|野外|パンツの中|自室|1
2|さっき|昨日|先日|遥か昔|さっき|2
3|変態だから|暑いから|大きくて自慢したいから|ちんちんが好き|ちんちんが好き|3

sqlite> .schema
CREATE TABLE "posts" ("id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "title" VARCHAR(130) NOT NULL, "num" INTEGER, "created_at" TIMESTAMP);
CREATE TABLE "questions" ("id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, "q1" VARCHAR(50), "q2" VARCHAR(50), "q3" VARCHAR(50), "q4" VARCHAR(50), "answer" VARCHAR(50), "post_id" INTEGER NOT NULL);

ハマったのはbelongs_toを指定したQuestionモデルの列にpost_idが追加され、そこにPostモデルのIDを関連付ける必要があったこと。モデルの定義で:post_id=>post.idと指定することでキチンとテーブルが作成できました。

ちなみに、取り込んだCSVは以下です。問題文と回答群、解答を1つのCSVに記述して、それをうまいこと取り込んで選択式問題の演習ができるような形に仕上げることがねらいです。問題例はフザけてますが。
そのCSVファイル。

うんこを流す場所は?,便器,自室,野外,パンツの中,自室
ちんちんを最後に洗ったのはいつ?,さっき,昨日,先日,遥か昔,さっき
おちんちんが出ているのはなぜ?,変態だから,暑いから,大きくて自慢したいから,ちんちんが好き,ちんちんが好き

いじょ。