public function adminControl()
 {
     $post_dao = new PostMySQLDAO();
     if (!isset($_POST['upgrade'])) {
         if ($post_dao->needsSnowflakeUpgrade()) {
             $this->addInfoMessage('In order to work correctly, your ThinkUp database needs an upgrade to suppport ' . '<a href="http://engineering.twitter.com/2010/06/announcing-snowflake.html">Twitter\'s new 64-bit ' . 'post IDs</a>.  On large ThinkUp databases, this update can take a very long time.');
             $this->addToView('needs_upgrade', true);
         } else {
             $this->addSuccessMessage('Your database is up to date.');
         }
     } else {
         if ($post_dao->needsSnowflakeUpgrade()) {
             $changed = $post_dao->performSnowflakeUpgrade();
             $this->addSuccessMessage('Database updated! ' . $changed . ' rows affected. You may continue using ' . 'ThinkUp as usual.');
         } else {
             $this->addSuccessMessage('Your database is up to date.');
         }
     }
     return $this->generateView();
 }
Example #2
0
 public function testPerformSnowflakeUpgrade()
 {
     $dao = new PostMySQLDAO();
     $this->assertFalse($dao->needsSnowflakeUpgrade());
     $changed = $dao->performSnowflakeUpgrade();
     $this->assertEqual($changed, 0);
     $this->db->exec('ALTER TABLE tu_posts CHANGE post_id post_id bigint(11) NOT NULL;');
     $this->db->exec('ALTER TABLE tu_instances CHANGE last_post_id last_status_id bigint(11) NOT NULL;');
     $this->assertTrue($dao->needsSnowflakeUpgrade());
     $changed = $dao->performSnowflakeUpgrade();
     $this->assertEqual($changed, 149);
     //144 posts + 5 instances
     $this->db->exec('ALTER TABLE tu_posts CHANGE post_id post_id bigint(11) NOT NULL;');
     $this->db->exec('ALTER TABLE tu_links CHANGE post_id post_id bigint(11) NOT NULL;');
     $this->db->exec('ALTER TABLE tu_instances CHANGE last_post_id last_status_id bigint(11) NOT NULL;');
     $this->assertTrue($dao->needsSnowflakeUpgrade());
     $changed = $dao->performSnowflakeUpgrade();
     $this->assertEqual($changed, 230);
     //225 posts + 5 instances
 }