diff --git a/lib/classes/Setup/Upgrade.class.php b/lib/classes/Setup/Upgrade.class.php index e038daae29..c8725b8a15 100644 --- a/lib/classes/Setup/Upgrade.class.php +++ b/lib/classes/Setup/Upgrade.class.php @@ -52,12 +52,15 @@ class Setup_Upgrade public function __construct(appbox &$appbox) { if (self::lock_exists()) - throw new Exception_Setup_UpgradeAlreadyStarted(); + { + throw new Exception_Setup_UpgradeAlreadyStarted('The upgrade is already started'); + } + $this->appbox = $appbox; if(count(User_Adapter::get_wrong_email_users($appbox)) > 0) { - throw new Exception_Setup_FixBadEmailAddresses(); + throw new Exception_Setup_FixBadEmailAddresses('Please fix the database before starting'); } $this->write_lock(); diff --git a/lib/classes/patch/320f.class.php b/lib/classes/patch/320f.class.php index 7dc1e781a8..5031e58803 100644 --- a/lib/classes/patch/320f.class.php +++ b/lib/classes/patch/320f.class.php @@ -55,10 +55,22 @@ class patch_320f implements patchInterface function apply(base &$appbox) { $feeds = array(); - + + try + { + $sql = 'ALTER TABLE `ssel` ADD `migrated` INT NOT NULL DEFAULT "0"'; + $stmt = $appbox->get_connection()->prepare($sql); + $stmt->execute(); + $stmt->closeCursor(); + } + catch(Exception $e) + { + + } + $sql = 'SELECT ssel_id, usr_id, name, descript, pub_date , updater, pub_restrict, homelink - FROM ssel WHERE public = "1" or homelink="1"'; + FROM ssel WHERE (public = "1" or homelink="1") and migrated = 0'; $stmt = $appbox->get_connection()->prepare($sql); $stmt->execute(); @@ -73,6 +85,10 @@ class patch_320f implements patchInterface $feed = $this->get_feed($appbox, $user, $row['pub_restrict'], $row['homelink']); + if(!$feed instanceof Feed_Adapter) + { + continue; + } $entry = Feed_Entry_Adapter::create($appbox, $feed, array_shift($feed->get_publishers()), $row['name'], $row['descript'], $user->get_display_name(), $user->get_email()); $date_create = new DateTime($row['pub_date']); @@ -107,7 +123,8 @@ class patch_320f implements patchInterface } } - $sql = 'UPDATE ssel SET deleted = "1" WHERE ssel_id = :ssel_id'; + $sql = 'UPDATE ssel SET deleted = "1", migrated="1" + WHERE ssel_id = :ssel_id'; $stmt = $appbox->get_connection()->prepare($sql); $stmt->execute(array(':ssel_id' => $row['ssel_id'])); $stmt->closeCursor();