RubyでActiveRecordのマイグレーション機能を単体で使用する

Ruby on Railsに組み込まれたマイグレーション機能を、Ruby on Railsを使わないRubyプログラムから使用する方法を紹介する。

ActiveRecord::Migrationクラス

マイグーレション機能を使うためには、ActiveRecord::Migrationクラスを継承したクラスに、upメソッドまたはdownメソッドを作成して、そこにマイグレーションの文法を記述すればいい。

upメソッド、downメソッド内で使える文法についてはActiveRecord Migrationsを参照。

 

シンプルな例として、peopleテーブルを作成するスクリプトを書いてみた。

 

スクリプトを実行すると、Ruby on Railsでマイグレーションをした時と同じようなログが標準出力に表示される。

>ruby create_table.rb
— create_table(:people)
-> 1.0721s

 

テーブルが作成されたことを確認

上述のcreate_table.rbを実行すると、カレントフォルダにdb.sqlite3ファイルが作成されるはずなので、テーブルが作成されているか、中身を確認してみる。

>sqlite3 db.sqlite3
SQLite version 3.7.9 2011-11-01 00:52:41
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .tables
people
sqlite> .schema people
CREATE TABLE "people" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255), "b
irth" date, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL);

ちゃんと作成されている。

応用と可能性

これができるようになると、どんなことができるようになるか?について、考えてみた。

このように、Ruby好きな人にとっては、本業に楽しさを持ち込むチャンスが増えると思う。

コメントを残す

トラックバック: http://pgnote.net/wp-trackback.php?p=1395