From 3fc98e5866b752915a9e4436ac595e474e842df9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Matyas?= Date: Sat, 25 Jun 2011 19:38:17 +0200 Subject: [PATCH 1/6] modified groups to work like groups and not like location --- classes/minion/task/db/generate.php | 8 ++------ config/minion/migration.php | 3 +++ 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/classes/minion/task/db/generate.php b/classes/minion/task/db/generate.php index 4d9b313..f61fa9a 100644 --- a/classes/minion/task/db/generate.php +++ b/classes/minion/task/db/generate.php @@ -51,7 +51,7 @@ class Minion_Task_Db_Generate extends Minion_Task 'See help for more info'.PHP_EOL; } - $group = rtrim(realpath($config['group']), '/').'/'; + $group = $config['group'].'/'; $description = $config['description']; // {year}{month}{day}{hour}{minute}{second} @@ -79,9 +79,6 @@ class Minion_Task_Db_Generate extends Minion_Task */ protected function _generate_classname($group, $time) { - // Chop up everything up until the relative path - $group = substr($group, strrpos($group, 'migrations/') + 11); - $class = ucwords(str_replace('/', ' ', $group)); // If group is empty then we want to avoid double underscore in the @@ -107,8 +104,7 @@ class Minion_Task_Db_Generate extends Minion_Task public function _generate_filename($group, $time, $description) { $description = substr(strtolower($description), 0, 100); - - return $group.$time.'_'.preg_replace('~[^a-z]+~', '-', $description).EXT; + return DOCROOT.Kohana::config('minion/migration')->default_path.$group.$time.'_'.preg_replace('~[^a-z]+~', '-', $description).EXT; } } diff --git a/config/minion/migration.php b/config/minion/migration.php index 5f16a12..471c3bc 100644 --- a/config/minion/migration.php +++ b/config/minion/migration.php @@ -6,6 +6,9 @@ return array( 'group_connection' => array( ), + + 'default_path' => 'migrations/', + /** * This specifies which migration should be the "base", in timestamp form. * This migration will not be run when --migrate-down is called From f7b1b1151e3d08273b74ecff25912cb93dc64db0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Matyas?= Date: Sun, 26 Jun 2011 01:18:42 +0200 Subject: [PATCH 2/6] fixed default path in configuration file --- config/minion/migration.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/minion/migration.php b/config/minion/migration.php index 471c3bc..0dc813e 100644 --- a/config/minion/migration.php +++ b/config/minion/migration.php @@ -7,7 +7,7 @@ return array( ), - 'default_path' => 'migrations/', + 'default_path' => 'application/migrations/', /** * This specifies which migration should be the "base", in timestamp form. From 0eba2a0f02f92fe4c9b6261b23dcc106392eaa24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Matyas?= Date: Sun, 26 Jun 2011 01:23:17 +0200 Subject: [PATCH 3/6] Add creating directories for migrations if they don't exist --- classes/minion/task/db/generate.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/classes/minion/task/db/generate.php b/classes/minion/task/db/generate.php index f61fa9a..9d7aace 100644 --- a/classes/minion/task/db/generate.php +++ b/classes/minion/task/db/generate.php @@ -65,6 +65,11 @@ class Minion_Task_Db_Generate extends Minion_Task ->set('description', $description) ->render(); + if ( ! is_dir(dirname($file))) + { + mkdir(dirname($file), 0775, TRUE); + } + file_put_contents($file, $data); return 'Migration generated in '.$file.PHP_EOL; From 7b0fc8bdb688f0d910ca4db7ae25c7bb3401cda9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Matyas?= Date: Sun, 26 Jun 2011 03:41:52 +0200 Subject: [PATCH 4/6] removing default path from configuration and adding support for --location --- classes/minion/task/db/generate.php | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/classes/minion/task/db/generate.php b/classes/minion/task/db/generate.php index 9d7aace..f2973f8 100644 --- a/classes/minion/task/db/generate.php +++ b/classes/minion/task/db/generate.php @@ -35,7 +35,8 @@ class Minion_Task_Db_Generate extends Minion_Task */ protected $_config = array( 'group', - 'description' + 'description', + 'location' ); /** @@ -54,10 +55,16 @@ class Minion_Task_Db_Generate extends Minion_Task $group = $config['group'].'/'; $description = $config['description']; + if (empty($config['location'])) + { + $config['location'] = APPPATH; + } + $location = rtrim(realpath($config['location']), '/').'/migrations/'; + // {year}{month}{day}{hour}{minute}{second} $time = date('YmdHis'); $class = $this->_generate_classname($group, $time); - $file = $this->_generate_filename($group, $time, $description); + $file = $this->_generate_filename($location, $group, $time, $description); $data = Kohana::FILE_SECURITY.View::factory('minion/task/db/generate/template') @@ -106,10 +113,10 @@ class Minion_Task_Db_Generate extends Minion_Task * @param string Description * @return string Filename */ - public function _generate_filename($group, $time, $description) + public function _generate_filename($location, $group, $time, $description) { $description = substr(strtolower($description), 0, 100); - return DOCROOT.Kohana::config('minion/migration')->default_path.$group.$time.'_'.preg_replace('~[^a-z]+~', '-', $description).EXT; + return $location.$group.$time.'_'.preg_replace('~[^a-z]+~', '-', $description).EXT; } } From 67bdc628e7ca0d3adeb482a528d0f971e4c59bff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Matyas?= Date: Sun, 26 Jun 2011 03:49:49 +0200 Subject: [PATCH 5/6] removed default path from configuration --- config/minion/migration.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/config/minion/migration.php b/config/minion/migration.php index 0dc813e..32c869d 100644 --- a/config/minion/migration.php +++ b/config/minion/migration.php @@ -7,8 +7,6 @@ return array( ), - 'default_path' => 'application/migrations/', - /** * This specifies which migration should be the "base", in timestamp form. * This migration will not be run when --migrate-down is called From 25848a26c0f88261c7ee5078e8fe7513e69c2ee5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Matyas?= Date: Sun, 26 Jun 2011 04:05:13 +0200 Subject: [PATCH 6/6] making descriptions optional --- classes/minion/task/db/generate.php | 4 ++-- views/minion/task/db/generate/template.php | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/classes/minion/task/db/generate.php b/classes/minion/task/db/generate.php index f2973f8..7b58b8e 100644 --- a/classes/minion/task/db/generate.php +++ b/classes/minion/task/db/generate.php @@ -46,9 +46,9 @@ class Minion_Task_Db_Generate extends Minion_Task */ public function execute(array $config) { - if (empty($config['group']) OR empty($config['description'])) + if (empty($config['group'])) { - return 'Please provide --group and --description'.PHP_EOL. + return 'Please provide --group'.PHP_EOL. 'See help for more info'.PHP_EOL; } diff --git a/views/minion/task/db/generate/template.php b/views/minion/task/db/generate/template.php index fef2b6c..549ef4d 100644 --- a/views/minion/task/db/generate/template.php +++ b/views/minion/task/db/generate/template.php @@ -1,8 +1,8 @@ - - + /** * */ + class extends Minion_Migration_Base { /**