Rails型開発だと、まずテーブル設計してモデルつくるところからはじまりますが、それはAkelosでも同様です。
このブログのテーブル定義はこちらの記事を基本とし、記事の下書き状態を表すカラムなどをいくつか追加しました。
ここでマイグレーションに触れることになりますが、AkelosのマイグレーションはやっぱりRailsとほとんど同じです。
Akelosのマイグレーション
コマンドプロンプト(通称DOS窓)で作業します。
カレントをAkelosの配置ディレクトリまで移動。・・・は、ちょっとだるいので、
EclipseからDOS窓を開くことができるプラグイン(Eclipse Platform Extensions)を入れると便利です。
アップデートセンターで、
http://opensource.trajano.net/
を新規リモートサイトとして登録。
「プラットホーム拡張」とかいうプラグインがそれで、
入れるとプロジェクトの右クリックなどで、
「フォルダーを開く」ってのが出てきて、
そのパスでコマンドプロンプトが起動可能になります。
Akelosプロジェクトのトップで、
> php script/generate model WeblogでWeblogモデルを作成。
強制的に上書きするときは--forceをつける。
> php script/generate model Weblog --forceするとmodelができるとともにapp/installersにweblog_installer.phpというマイグレーションファイルができます。
このweblog_installer.phpにRailsと同じくupメソッドとdownメソッドを書いていきます。
<?php
class WeblogInstaller extends AkInstaller {
function up_1() {
$this->createTable('weblogs', "
id,
title,
");
}
function up_2() {
$this->addColumn('weblogs',"
description
");
}
function down_1() {
$this->dropTable('weblogs');
}
function down_2() {
$this->removeColumn('weblogs', "description");
}
}
?>
Railsの場合はマイグレーションファイルにバージョン番号がつく感じですが、
Alelosの場合はup_バージョン番号 というふうにメソッドにバージョン番号をつけます。
マイグレーションを実行するには、
> php script/migrate Weblog installダウングレードするには
> php script/migrate Weblog uninstall 1で、「バージョン1の状態に戻す」という意味。
カラム属性の指定
カラム名によってデフォルトで付与される属性は、
akelos/lib/AkInstaller.phpのgetDefaultColumnAttributesRulesメソッドに書いてあります。
カラム名が、
- description/content/body => text
- lock_version => integer
- xx_count => integer
- id => integerでauto_incrementでprimary_key
- xx_id/xx_by => integerでindex
- position => integerでindex
- xx_at => datetime
- xx_on => date
- is_xx/has_xx/do_xx/does_xx/are_xx => booleanでindex
- 上記以外 => string
みたいになっているので、そういうカラム名にすれば属性の指定は不要。
明示的にカラム属性を指定する場合は、
「カラム名 string」のように、カラム名の後にスペースで続けて型を指定します。
ADOdb Data Dictionaryの書式、
ADOdb Data Dictionary Manualの「Legal portable type codes include:」という箇所を参考にすると、割と自由自在に設定できるようになります。
例えば、MySQLの場合、textはLONGTEXTになってしまいますが、
普通のTEXTを指定したい場合は、「カラム名 X」のように"X"と指定します。