diff --git a/classes/minion/migration/util.php b/classes/minion/migration/util.php index 1890acf..47caeb2 100644 --- a/classes/minion/migration/util.php +++ b/classes/minion/migration/util.php @@ -61,9 +61,16 @@ class Minion_Migration_Util { // path from the migrations folder to the migration file $migration['group'] = dirname(substr($file, 11, -strlen(EXT))); - list($migration['timestamp'], $migration['description']) - = explode('_', basename($file, EXT), 2); - + if(strpos(basename($file), "_")) + { + list($migration['timestamp'], $migration['description']) + = explode('_', basename($file, EXT), 2); + } + else + { + $migration['timestamp'] = basename($file, EXT); + $migration['description'] = ""; + } $migration['id'] = $migration['group'].':'.$migration['timestamp']; return $migration; @@ -79,7 +86,15 @@ class Minion_Migration_Util { public static function get_filename_from_migration(array $migration) { $group = $migration['group']; - $migration = $migration['timestamp'].'_'.$migration['description']; + + if(!empty($migration['description'])) + { + $migration = $migration['timestamp'].'_'.$migration['description']; + } + else + { + $migration = $migration['timestamp']; + } $group = ( ! empty($group)) ? (rtrim($group, '/').'/') : ''; diff --git a/classes/minion/task/db/generate.php b/classes/minion/task/db/generate.php index 3b5e2cb..c2fe360 100644 --- a/classes/minion/task/db/generate.php +++ b/classes/minion/task/db/generate.php @@ -45,6 +45,20 @@ class Minion_Task_Db_Generate extends Minion_Task * @param array Configuration */ public function execute(array $config) + { + try + { + $file = $this->generate($config); + Minion_CLI::write('Migration generated: '.$file); + } + catch(ErrorException $e) + { + Minion_CLI::write($e->getMessage()); + } + + } + + public function generate($config, $up = null, $down = null) { $defaults = array( 'location' => APPPATH, @@ -59,9 +73,7 @@ class Minion_Task_Db_Generate extends Minion_Task if ( ! $this->_valid_group($config['group'])) { - Minion_CLI::write('Please provide a valid --group'); - Minion_CLI::write('See help for more info'); - return; + throw new ErrorException("Please provide a valid --group\nSee help for more info"); } $group = $config['group'].'/'; @@ -77,6 +89,8 @@ class Minion_Task_Db_Generate extends Minion_Task $data = Kohana::FILE_SECURITY.View::factory('minion/task/db/generate/template') ->set('class', $class) ->set('description', $description) + ->set('up', $up) + ->set('down', $down) ->render(); if ( ! is_dir(dirname($file))) @@ -86,8 +100,7 @@ class Minion_Task_Db_Generate extends Minion_Task file_put_contents($file, $data); - Minion_CLI::write('Migration generated: '.$file); - return; + return $file; } /** diff --git a/views/minion/task/db/generate/template.php b/views/minion/task/db/generate/template.php index 549ef4d..d8701ca 100644 --- a/views/minion/task/db/generate/template.php +++ b/views/minion/task/db/generate/template.php @@ -12,7 +12,12 @@ class extends Minion_Migration_Base { */ public function up(Kohana_Database $db) { + + + + // $db->query(NULL, 'CREATE TABLE ... '); + } /** @@ -22,6 +27,11 @@ class extends Minion_Migration_Base { */ public function down(Kohana_Database $db) { + + + + // $db->query(NULL, 'DROP TABLE ... '); + } } diff --git a/views/minion/task/db/migrate/exception.php b/views/minion/task/db/migrate/exception.php index 9a252f3..c5ed39a 100644 --- a/views/minion/task/db/migrate/exception.php +++ b/views/minion/task/db/migrate/exception.php @@ -1,3 +1,3 @@ -Minion encountered an error while executing migration `` (): +Minion encountered an error while executing migration `` ): diff --git a/views/minion/task/db/status.php b/views/minion/task/db/status.php index f9a17f4..98b0f1c 100644 --- a/views/minion/task/db/status.php +++ b/views/minion/task/db/status.php @@ -1,4 +1,4 @@ $status): ?> - * + *