Changeset 298
- Timestamp:
- 07/30/07 16:21:13 (1 year ago)
- Files:
-
- trunk/lib/AkInstaller.php (modified) (5 diffs)
- trunk/lib/constants.php (modified) (3 diffs)
- trunk/script/migrate (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/lib/AkInstaller.php
r292 r298 52 52 } 53 53 54 function up($version = null, $options = array()) 55 { 56 return $this->_upgradeOrDowngrade('up', $version, $options); 57 } 58 54 59 55 60 function uninstall($version = null, $options = array()) 61 { 62 return $this->_upgradeOrDowngrade('down', $version, $options); 63 } 64 65 function down($version = null, $options = array()) 56 66 { 57 67 return $this->_upgradeOrDowngrade('down', $version, $options); … … 74 84 if($action == 'up'){ 75 85 $newest_version = max($available_versions); 76 $version = is_numeric($version) ? $version : $newest_version; 77 78 if($version <= $newest_version && $version > $current_version){ 79 $versions = array_slice($available_versions, array_shift(array_keys($available_versions,$current_version))+($current_version ? 1 : 0)); 80 } 81 86 $version = isset($version[0]) && is_numeric($version[0]) ? $version[0] : $newest_version; 87 $versions = range($current_version+1,$version); 88 89 if($current_version > $version){ 90 echo Ak::t("You can't upgrade to version %version, when you are currently on version %current_version", array('%version'=>$version,'%current_version'=>$current_version)); 91 return false; 92 } 82 93 }else{ 83 $version = is_numeric($version) ? $version : 1; 84 $installed_versions = array_slice(array_reverse($available_versions), array_shift(array_keys(array_reverse($available_versions),$current_version))); 85 $versions = array_slice($installed_versions, array_shift(array_keys($installed_versions,$current_version))); 86 if(!in_array($version, $versions)){ 94 $version = !empty($version[0]) && is_numeric($version[0]) ? $version[0] : 0; 95 $versions = range($current_version, empty($version) ? 1 : $version+1); 96 97 if($current_version < $version){ 98 echo Ak::t("You can't downgrade to version %version, when you just have installed version %current_version", array('%version'=>$version,'%current_version'=>$current_version)); 87 99 return false; 88 100 } 101 } 102 103 if($current_version == $version){ 104 echo Ak::t("Can't go $action to version %version, you're already on version %version", array('%version'=>$version)); 105 return false; 89 106 } 90 107 … … 545 562 return file_exists($path) ? $path : false; 546 563 } 547 564 548 565 function _ensureColumnNameCompatibility($columns) 549 566 { … … 560 577 $invalid_columns = $this->_getInvalidColumnNames(); 561 578 if(in_array($column_name, $invalid_columns)){ 562 579 563 580 $method_name_part = AkInflector::camelize($column_name); 564 581 require_once(AK_LIB_DIR.DS.'AkActiveRecord.php'); … … 603 620 function usage() 604 621 { 605 returnAk::t("Description:622 echo Ak::t("Description: 606 623 Database migrations is a sort of SCM like subversion, but for database settings. 607 624 trunk/lib/constants.php
r297 r298 162 162 // ini_set('session.cookie_domain', AK_COOKIE_DOMAIN); 163 163 164 defined('AK_INSECURE_APP_DIRECTORY_LAYOUT') ? null : define('AK_INSECURE_APP_DIRECTORY_LAYOUT', false); 165 166 if(!defined('AK_ASSET_URL_PREFIX')){ 167 defined('AK_ASSET_URL_PREFIX') ? null : define('AK_ASSET_URL_PREFIX', AK_INSECURE_APP_DIRECTORY_LAYOUT ? AK_SITE_URL_SUFFIX.str_replace(array(AK_BASE_DIR,'\\','//'),array('','/','/'), AK_PUBLIC_DIR) : AK_SITE_URL_SUFFIX); 168 } 169 170 164 171 }else{ 165 172 defined('AK_PROTOCOL') ? null : define('AK_PROTOCOL','http://'); … … 170 177 defined('AK_CURRENT_URL') ? null : define('AK_CURRENT_URL', 'http://localhost/'); 171 178 defined('AK_COOKIE_DOMAIN') ? null : define('AK_COOKIE_DOMAIN', AK_HOST); 179 180 defined('AK_ASSET_URL_PREFIX') ? null : define('AK_ASSET_URL_PREFIX', ''); 172 181 } 173 182 … … 179 188 180 189 defined('AK_ASSET_HOST') ? null : define('AK_ASSET_HOST',''); 181 182 defined('AK_INSECURE_APP_DIRECTORY_LAYOUT') ? null : define('AK_INSECURE_APP_DIRECTORY_LAYOUT', false);183 184 if(!defined('AK_ASSET_URL_PREFIX')){185 defined('AK_ASSET_URL_PREFIX') ? null : define('AK_ASSET_URL_PREFIX', AK_INSECURE_APP_DIRECTORY_LAYOUT ? AK_SITE_URL_SUFFIX.str_replace(array(AK_BASE_DIR,'\\','//'),array('','/','/'), AK_PUBLIC_DIR) : AK_SITE_URL_SUFFIX);186 }187 190 188 191 defined('AK_DEV_MODE') ? null : define('AK_DEV_MODE', AK_ENVIRONMENT == 'development'); trunk/script/migrate
r2 r298 38 38 39 39 if($installer_name == 'Installer'){ 40 echo "\n You must supply a valid installer name \n"; 40 $files = Ak::dir(AK_APP_DIR.DS.'installers'); 41 if(empty($files)){ 42 echo Ak::t("\n Could not find installers at %dir \n", array('%dir'=>AK_APP_DIR.DS.'installers')); 43 44 }else{ 45 echo Ak::t("\n You must supply a valid installer name like : \n"); 46 echo Ak::t("\n > ./script/migrate my_installer_name install\n\n"); 47 echo Ak::t(" Available installers are: \n\n"); 48 foreach($files as $file){ 49 if(preg_match('/(.*)_installer\.php$/', $file, $match)){ 50 echo ' * '.$match[1]."\n"; 51 } 52 } 53 echo "\n"; 54 } 41 55 }elseif(!file_exists($file)){ 42 56 echo Ak::t("\n\n Could not locate the installer file %file\n\n",array('%file'=>$file));
