Permalink
Browse files

1.4.3 : hopefully a fixed upgrader. Fixes issue 277

git-svn-id: http://yourls.googlecode.com/svn/trunk@303 12232710-3e20-11de-b438-597f59cd7555
  • Loading branch information...
1 parent 06415e9 commit 07e3f7d4ce5e7bfccc9c83b7406b687c9bcb2764 @ozh ozh committed Mar 17, 2010
Showing with 68 additions and 41 deletions.
  1. +4 −1 changelog.txt
  2. +62 −38 includes/functions-upgrade.php
  3. +2 −2 includes/version.php
View
@@ -45,4 +45,7 @@ list, simply refer to the commit messages: http://code.google.com/p/yourls/sourc
1.4.2
- fixed bug in auth function
- added sample public API file
-- added check in API requests for WordPress plugin when adding a new short URL
+- added check in API requests for WordPress plugin when adding a new short URL
+
+1.4.3
+- fixed bug in stats
@@ -2,55 +2,79 @@
// Upgrade YOURLS and DB schema
function yourls_upgrade( $step, $oldver, $newver, $oldsql, $newsql ) {
- if( $oldver == '1.3') {
+ /* Code / DB version table:
+ 1.3 100
+ 1.4 200
+ 1.4.1 210
+ 1.4.3 220 */
+
+ // special case for 1.3: the upgrade is a multi step procedure
+ if( $oldsql == 100 ) {
yourls_upgrade_to_14( $step );
- } elseif ( $oldver == '1.4' ) {
- yourls_upgrade_to_141( $step );
}
-}
-
-/************************** 1.4 -> 1.4.1 **************************/
-
-// Main func for upgrade from 1.4 to 1.4.1
-function yourls_upgrade_to_141( $step ) {
+
+ // other upgrades which are done in a single pass
switch( $step ) {
+
case 1:
- // Kill old cookies from 1.3 and prior
- setcookie('yourls_username', null, time() - 3600 );
- setcookie('yourls_password', null, time() - 3600 );
- // alter table URL
- yourls_alter_url_table_to_141();
- // recreate the htaccess file if needed
- yourls_create_htaccess();
- yourls_redirect_javascript( YOURLS_SITE."/admin/upgrade.php?step=3&oldver=1.4&newver=1.4.1&oldsql=200&newsql=210" );
+ case 2:
+ if( $oldsql < 210 )
+ yourls_upgrade_to_141();
+
+ if( $oldsql < 220 )
+ yourls_upgrade_to_143();
+
+ yourls_redirect_javascript( yourls_admin_url( "upgrade.php?step=3" ) );
+
break;
- case 2:
case 3:
- // Update options
- yourls_update_options_to_141();
+ // Update options to reflect latest version
+ yourls_update_option( 'version', YOURLS_VERSION );
+ yourls_update_option( 'db_version', YOURLS_DB_VERSION );
+ break;
}
}
-// Alter table URL to 1.4.1
-function yourls_alter_url_table_to_141() {
+/************************** 1.4.1 -> 1.4.3 **************************/
+
+// Main func for upgrade from 1.4.1 to 1.4.3
+function yourls_upgrade_to_143( ) {
+ // Check if we have 'keyword' (borked install) or 'shorturl' (ok install)
global $ydb;
- $table_url = YOURLS_DB_TABLE_URL;
$table_log = YOURLS_DB_TABLE_LOG;
- $alters[] = "ALTER TABLE `$table_url` CHANGE `keyword` `keyword` VARCHAR( 200 ) BINARY, CHANGE `url` `url` TEXT BINARY ";
- $alters[] = "ALTER TABLE `$table_log` CHANGE `shorturl` `keyword` VARCHAR( 200 ) BINARY;";
- foreach( $alters as $alter ) {
- $ydb->query( $alter );
+ $sql = "SHOW COLUMNS FROM `$table_log`";
+ $cols = $ydb->get_results( $sql );
+ if ( $cols[2]->Field == 'keyword' ) {
+ $sql = "ALTER TABLE `$table_log` CHANGE `keyword` `shorturl` VARCHAR( 200 ) BINARY;";
+ $ydb->query( $sql );
}
echo "<p>Structure of existing tables updated. Please wait...</p>";
}
-// Update options to reflect version 1.4.1
-function yourls_update_options_to_141() {
- yourls_update_option( 'version', YOURLS_VERSION );
- yourls_update_option( 'db_version', YOURLS_DB_VERSION );
+/************************** 1.4 -> 1.4.1 **************************/
+
+// Main func for upgrade from 1.4 to 1.4.1
+function yourls_upgrade_to_141( ) {
+ // Kill old cookies from 1.3 and prior
+ setcookie('yourls_username', null, time() - 3600 );
+ setcookie('yourls_password', null, time() - 3600 );
+ // alter table URL
+ yourls_alter_url_table_to_141();
+ // recreate the htaccess file if needed
+ yourls_create_htaccess();
+}
+
+// Alter table URL to 1.4.1
+function yourls_alter_url_table_to_141() {
+ global $ydb;
+ $table_url = YOURLS_DB_TABLE_URL;
+ $alter = "ALTER TABLE `$table_url` CHANGE `keyword` `keyword` VARCHAR( 200 ) BINARY, CHANGE `url` `url` TEXT BINARY ";
+ $ydb->query( $alter );
+ echo "<p>Structure of existing tables updated. Please wait...</p>";
}
+
/************************** 1.3 -> 1.4 **************************/
// Main func for upgrade from 1.3-RC1 to 1.4
@@ -67,7 +91,7 @@ function yourls_upgrade_to_14( $step ) {
$create = yourls_create_htaccess(); // returns bool
if ( !$create )
echo "<p class='warning'>Please create your <tt>.htaccess</tt> file (I could not do it for you). Please refer to <a href='http://yourls.org/htaccess'>http://yourls.org/htaccess</a>.";
- yourls_redirect_javascript( YOURLS_SITE."/admin/upgrade.php?step=2&oldver=1.3&newver=1.4&oldsql=100&newsql=200", $create );
+ yourls_redirect_javascript( yourls_admin_url( "upgrade.php?step=2&oldver=1.3&newver=1.4&oldsql=100&newsql=200" ), $create );
break;
case 2:
@@ -82,15 +106,15 @@ function yourls_upgrade_to_14( $step ) {
// attempt to drop YOURLS_DB_TABLE_NEXTDEC
yourls_update_options_to_14();
// Now upgrade to 1.4.1
- yourls_redirect_javascript( YOURLS_SITE."/admin/upgrade.php?step=1&oldver=1.4&newver=1.4.1&oldsql=200&newsql=210" );
+ yourls_redirect_javascript( yourls_admin_url( "upgrade.php?step=1&oldver=1.4&newver=1.4.1&oldsql=200&newsql=210" ) );
break;
}
}
// Update options to reflect new version
function yourls_update_options_to_14() {
- yourls_update_option( 'version', YOURLS_VERSION );
- yourls_update_option( 'db_version', YOURLS_DB_VERSION );
+ yourls_update_option( 'version', '1.4' );
+ yourls_update_option( 'db_version', '200' );
if( defined('YOURLS_DB_TABLE_NEXTDEC') ) {
global $ydb;
@@ -180,7 +204,7 @@ function yourls_update_table_to_14() {
$table = YOURLS_DB_TABLE_URL;
// Modify each link to reflect new structure
- $chunk = 15;
+ $chunk = 45;
$from = isset($_GET['from']) ? intval( $_GET['from'] ) : 0 ;
$total = yourls_get_db_stats();
$total = $total['total_links'];
@@ -217,11 +241,11 @@ function yourls_update_table_to_14() {
$from = $from + $chunk;
$remain = $total - $from;
echo "<p>Converted $chunk database rows ($remain remaining). Continuing... Please do not close this window until it's finished!</p>";
- yourls_redirect_javascript( YOURLS_SITE."/admin/upgrade.php?step=2&oldver=1.3&newver=1.4&oldsql=100&newsql=200&from=$from", $success );
+ yourls_redirect_javascript( yourls_admin_url( "upgrade.php?step=2&oldver=1.3&newver=1.4&oldsql=100&newsql=200&from=$from" ), $success );
} else {
// All done
echo '<p>All rows converted! Please wait...</p>';
- yourls_redirect_javascript( YOURLS_SITE."/admin/upgrade.php?step=3&oldver=1.3&newver=1.4&oldsql=100&newsql=200", $success );
+ yourls_redirect_javascript( yourls_admin_url( "upgrade.php?step=3&oldver=1.3&newver=1.4&oldsql=100&newsql=200" ), $success );
}
}
@@ -1,5 +1,5 @@
<?php
// Bump this when updating the zip package
-define('YOURLS_VERSION', '1.4.2');
-define('YOURLS_DB_VERSION', '210');
+define('YOURLS_VERSION', '1.4.3');
+define('YOURLS_DB_VERSION', '220');
?>

0 comments on commit 07e3f7d

Please sign in to comment.