From b1fa2b7cb0651dfbffb7c8642e567f8ce844dae8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Matyas?= Date: Sun, 26 Jun 2011 11:20:56 +0200 Subject: [PATCH 1/3] fixing unproperly handled lack of description --- classes/minion/migration/util.php | 23 ++++++++++++++++++---- views/minion/task/db/migrate/exception.php | 2 +- views/minion/task/db/status.php | 2 +- 3 files changed, 21 insertions(+), 6 deletions(-) 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/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): ?> - * + * From f30cca150b97deb782a88c4a58bd05c6f728fe2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Matyas?= Date: Thu, 30 Jun 2011 14:40:24 +0200 Subject: [PATCH 2/3] moved generating of migration to public method so it can be used for other tasks --- classes/minion/task/db/generate.php | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/classes/minion/task/db/generate.php b/classes/minion/task/db/generate.php index 3b5e2cb..e9bed69 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) { $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'].'/'; @@ -86,8 +98,7 @@ class Minion_Task_Db_Generate extends Minion_Task file_put_contents($file, $data); - Minion_CLI::write('Migration generated: '.$file); - return; + return $file; } /** From fca8ccdf774af5cece13395e5a799e98fa177706 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Matyas?= Date: Thu, 30 Jun 2011 14:46:58 +0200 Subject: [PATCH 3/3] created possibility of writing generated code directly into migration --- classes/minion/task/db/generate.php | 4 +++- views/minion/task/db/generate/template.php | 10 ++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/classes/minion/task/db/generate.php b/classes/minion/task/db/generate.php index e9bed69..c2fe360 100644 --- a/classes/minion/task/db/generate.php +++ b/classes/minion/task/db/generate.php @@ -58,7 +58,7 @@ class Minion_Task_Db_Generate extends Minion_Task } - public function generate($config) + public function generate($config, $up = null, $down = null) { $defaults = array( 'location' => APPPATH, @@ -89,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))) 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 ... '); + } }