まとめてmigrateをおこなう
Akelosでモデルのmigrateをするときにまとめてできないのがめんどくさいので、一括してmigrateを行うインストーラを作って対応。
app/installers/all_installer.php
<?php class AllInstaller extends AkInstaller { function up_1() { $installers = glob(dirname(__FILE__).DS.'*_installer.php'); foreach($installers as $installer) { $installer = str_replace('_installer.php', '', basename($installer)); if($installer != 'all') { /* * passthru($this->getScriptDir().DS."migrate {$installer} install"); * - 修正:20071119 * - camelizeしておかないと hoge_fuga とかのときにエラーになるので */ passthru($this->getScriptDir().DS.'migrate '.AkInflector::camelize($installer).' install'); } } } function down_1() { $installers = glob(dirname(__FILE__).DS.'*_installer.php'); foreach($installers as $installer) { $installer = str_replace('_installer.php', '', basename($installer)); if($installer != 'all') { /* * passthru($this->getScriptDir().DS."migrate {$installer} uninstall"); * - 修正:20071119 * - camelizeしておかないと hoge_fuga とかのときにエラーになるので */ passthru($this->getScriptDir().DS.'migrate '.AkInflector::camelize($installer).' uninstall'); } } } function getInstallerDir() { return dirname(__FILE__); } function getScriptDir() { return dirname(__FILE__).DS.'..'.DS.'..'.DS.'script'; } } ?>
あとは
$ ./script/migrate all install
でまとめていけるようになります。