summaryrefslogtreecommitdiffstats
path: root/lib/class/update.class.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/class/update.class.php')
-rw-r--r--lib/class/update.class.php3298
1 files changed, 1649 insertions, 1649 deletions
diff --git a/lib/class/update.class.php b/lib/class/update.class.php
index 0e7ce44c..bfaefc65 100644
--- a/lib/class/update.class.php
+++ b/lib/class/update.class.php
@@ -1,5 +1,5 @@
<?php
-/* vim:set tabstop=8 softtabstop=8 shiftwidth=8 noexpandtab: */
+/* vim:set softtabstop=4 shiftwidth=4 expandtab: */
/**
*
* LICENSE: GNU General Public License, version 2 (GPLv2)
@@ -41,2068 +41,2068 @@
*/
class Update {
- public $key;
- public $value;
- public static $versions; // array containing version information
+ public $key;
+ public $value;
+ public static $versions; // array containing version information
- /**
- * Update
- * Constructor, pulls out information about the desired key
- */
- function Update ( $key=0 ) {
+ /**
+ * Update
+ * Constructor, pulls out information about the desired key
+ */
+ function Update ( $key=0 ) {
- if (!$key) { return false; }
+ if (!$key) { return false; }
- $this->key = intval($key);
- $info = $this->_get_info();
- $this->value = $info['value'];
- $this->versions = $this->populate_version();
+ $this->key = intval($key);
+ $info = $this->_get_info();
+ $this->value = $info['value'];
+ $this->versions = $this->populate_version();
- } // constructor
+ } // constructor
- /**
- * _get_info
- * gets the information for the zone
- */
- private function _get_info() {
+ /**
+ * _get_info
+ * gets the information for the zone
+ */
+ private function _get_info() {
- $sql = "SELECT * FROM `update_info` WHERE `key`='$this->key'";
- $db_results = Dba::read($sql);
+ $sql = "SELECT * FROM `update_info` WHERE `key`='$this->key'";
+ $db_results = Dba::read($sql);
- return Dba::fetch_assoc($db_results);
+ return Dba::fetch_assoc($db_results);
- } // _get_info
+ } // _get_info
- /**
- * get_version
- * this checks to see what version you are currently running
- * because we may not have the update_info table we have to check
- * for it's existance first.
- */
- public static function get_version() {
+ /**
+ * get_version
+ * this checks to see what version you are currently running
+ * because we may not have the update_info table we have to check
+ * for it's existance first.
+ */
+ public static function get_version() {
- /* Make sure that update_info exits */
- $sql = "SHOW TABLES LIKE 'update_info'";
- $db_results = Dba::read($sql);
- if (!is_resource(Dba::dbh())) { header("Location: test.php"); }
+ /* Make sure that update_info exits */
+ $sql = "SHOW TABLES LIKE 'update_info'";
+ $db_results = Dba::read($sql);
+ if (!is_resource(Dba::dbh())) { header("Location: test.php"); }
- // If no table
- if (!Dba::num_rows($db_results)) {
- // They can't upgrade, they are too old
- header("Location: test.php");
+ // If no table
+ if (!Dba::num_rows($db_results)) {
+ // They can't upgrade, they are too old
+ header("Location: test.php");
- } // if table isn't found
+ } // if table isn't found
- else {
- // If we've found the update_info table, let's get the version from it
- $sql = "SELECT * FROM `update_info` WHERE `key`='db_version'";
- $db_results = Dba::read($sql);
- $results = Dba::fetch_assoc($db_results);
- $version = $results['value'];
- }
+ else {
+ // If we've found the update_info table, let's get the version from it
+ $sql = "SELECT * FROM `update_info` WHERE `key`='db_version'";
+ $db_results = Dba::read($sql);
+ $results = Dba::fetch_assoc($db_results);
+ $version = $results['value'];
+ }
- return $version;
+ return $version;
- } // get_version
+ } // get_version
- /**
- * format_version
- * make the version number pretty
- */
- public static function format_version($data) {
+ /**
+ * format_version
+ * make the version number pretty
+ */
+ public static function format_version($data) {
- $new_version = substr($data,0,strlen($data) - 5) . "." . substr($data,strlen($data)-5,1) . " Build:" .
- substr($data,strlen($data)-4,strlen($data));
+ $new_version = substr($data,0,strlen($data) - 5) . "." . substr($data,strlen($data)-5,1) . " Build:" .
+ substr($data,strlen($data)-4,strlen($data));
- return $new_version;
+ return $new_version;
- } // format_version
+ } // format_version
- /**
- * need_update
- * checks to see if we need to update
- * ampache at all
- */
- public static function need_update() {
+ /**
+ * need_update
+ * checks to see if we need to update
+ * ampache at all
+ */
+ public static function need_update() {
- $current_version = self::get_version();
+ $current_version = self::get_version();
- if (!is_array(self::$versions)) {
- self::$versions = self::populate_version();
- }
+ if (!is_array(self::$versions)) {
+ self::$versions = self::populate_version();
+ }
- /*
- Go through the versions we have and see if
- we need to apply any updates
- */
- foreach (self::$versions as $update) {
- if ($update['version'] > $current_version) {
- return true;
- }
+ /*
+ Go through the versions we have and see if
+ we need to apply any updates
+ */
+ foreach (self::$versions as $update) {
+ if ($update['version'] > $current_version) {
+ return true;
+ }
- } // end foreach version
+ } // end foreach version
- return false;
+ return false;
- } // need_update
+ } // need_update
- /**
- * plugins_installed
- * This function checks to make sure that there are no plugins
- * installed before allowing you to run the update. this is
- * to protect the integrity of the database
- */
- public static function plugins_installed() {
+ /**
+ * plugins_installed
+ * This function checks to make sure that there are no plugins
+ * installed before allowing you to run the update. this is
+ * to protect the integrity of the database
+ */
+ public static function plugins_installed() {
- /* Pull all version info */
- $sql = "SELECT * FROM `update_info`";
- $db_results = Dba::read($sql);
+ /* Pull all version info */
+ $sql = "SELECT * FROM `update_info`";
+ $db_results = Dba::read($sql);
- while ($results = Dba::fetch_assoc($db_results)) {
+ while ($results = Dba::fetch_assoc($db_results)) {
- /* We have only one allowed string */
- if ($results['key'] != 'db_version') {
- return false;
- }
+ /* We have only one allowed string */
+ if ($results['key'] != 'db_version') {
+ return false;
+ }
- } // while update_info results
+ } // while update_info results
- return true;
+ return true;
- } // plugins_installed
+ } // plugins_installed
- /**
- * populate_version
- * just sets an array the current differences
- * that require an update
- */
- public static function populate_version() {
+ /**
+ * populate_version
+ * just sets an array the current differences
+ * that require an update
+ */
+ public static function populate_version() {
- /* Define the array */
- $version = array();
+ /* Define the array */
+ $version = array();
- $update_string = '- Moved back to ID for user tracking internally.<br />' .
- '- Added date to user_vote to allow sorting by vote time.<br />' .
- '- Added Random Method and Object Count Preferences.<br />' .
- '- Removed some unused tables/fields.<br />' .
- '- Added Label, Catalog # and Language to Extended Song Data Table.';
+ $update_string = '- Moved back to ID for user tracking internally.<br />' .
+ '- Added date to user_vote to allow sorting by vote time.<br />' .
+ '- Added Random Method and Object Count Preferences.<br />' .
+ '- Removed some unused tables/fields.<br />' .
+ '- Added Label, Catalog # and Language to Extended Song Data Table.';
- $version[] = array('version' => '340001','description' => $update_string);
+ $version[] = array('version' => '340001','description' => $update_string);
- $update_string = '- Added Offset Limit to Preferences and removed from user table.';
+ $update_string = '- Added Offset Limit to Preferences and removed from user table.';
- $version[] = array('version' => '340002','description' => $update_string);
+ $version[] = array('version' => '340002','description' => $update_string);
- $update_string = '- Moved Art from the Album table into album_data to improve performance.<br />' .
- '- Made some minor changes to song table to reduce size of each row.<br />' .
- '- Moved song_ext_data to song_data to match album_data pattern.<br />' .
- '- Added Playlist Method and Rate Limit Preferences.<br />' .
- '- Renamed preferences and ratings to preference and rating to fit table pattern.<br />' .
- '- Fixed rating table, renamed user_rating to rating and switched 00 for -1.<br />';
+ $update_string = '- Moved Art from the Album table into album_data to improve performance.<br />' .
+ '- Made some minor changes to song table to reduce size of each row.<br />' .
+ '- Moved song_ext_data to song_data to match album_data pattern.<br />' .
+ '- Added Playlist Method and Rate Limit Preferences.<br />' .
+ '- Renamed preferences and ratings to preference and rating to fit table pattern.<br />' .
+ '- Fixed rating table, renamed user_rating to rating and switched 00 for -1.<br />';
- $version[] = array('version' => '340003','description' => $update_string);
+ $version[] = array('version' => '340003','description' => $update_string);
- $update_string = '- Alter the Session.id to be VARCHAR(64) to account for all potential configs.<br />' .
- '- Added new user_shout table for Sticky objects / shoutbox.<br />' .
- '- Added new playlist preferences, and new preference catagory of playlist.<br />' .
- '- Tweaked Now Playing Table.<br />';
+ $update_string = '- Alter the Session.id to be VARCHAR(64) to account for all potential configs.<br />' .
+ '- Added new user_shout table for Sticky objects / shoutbox.<br />' .
+ '- Added new playlist preferences, and new preference catagory of playlist.<br />' .
+ '- Tweaked Now Playing Table.<br />';
- $version[] = array('version' => '340004','description' => $update_string);
+ $version[] = array('version' => '340004','description' => $update_string);
- $update_string = '- Altered Ratings table so the fields make more sense.<br />' .
- '- Moved Random Method to Playlist catagory.<br />' .
- '- Added Transcode Method to Streaming.<br />';
+ $update_string = '- Altered Ratings table so the fields make more sense.<br />' .
+ '- Moved Random Method to Playlist catagory.<br />' .
+ '- Added Transcode Method to Streaming.<br />';
- $version[] = array('version' => '340005','description' => $update_string);
+ $version[] = array('version' => '340005','description' => $update_string);
- $update_string = '- Remove Random Method config option, ended up being useless.<br />' .
- '- Check and change album_data.art to a MEDIUMBLOB if needed.<br />';
+ $update_string = '- Remove Random Method config option, ended up being useless.<br />' .
+ '- Check and change album_data.art to a MEDIUMBLOB if needed.<br />';
- $version[] = array('version' => '340006','description' => $update_string);
+ $version[] = array('version' => '340006','description' => $update_string);
- $update_string = '- Added new session_stream table for sessions tied directly to stream instances.<br />' .
- '- Altered the session table, making value a LONGTEXT.<br />';
+ $update_string = '- Added new session_stream table for sessions tied directly to stream instances.<br />' .
+ '- Altered the session table, making value a LONGTEXT.<br />';
- $version[] = array('version' => '340007','description' => $update_string);
+ $version[] = array('version' => '340007','description' => $update_string);
- $update_string = '- Modified Playlist_Data table to account for multiple object types.<br />' .
- '- Verified previous updates, adjusting as needed.<br />' .
- '- Dropped Allow Downsampling pref, configured in cfg file.<br />' .
- '- Renamed Downsample Rate --> Transcode Rate to reflect new terminiology.<br />';
+ $update_string = '- Modified Playlist_Data table to account for multiple object types.<br />' .
+ '- Verified previous updates, adjusting as needed.<br />' .
+ '- Dropped Allow Downsampling pref, configured in cfg file.<br />' .
+ '- Renamed Downsample Rate --> Transcode Rate to reflect new terminiology.<br />';
- $version[] = array('version' => '340008','description' => $update_string);
+ $version[] = array('version' => '340008','description' => $update_string);
- $update_string = '- Added disk to Album table.<br />' .
- '- Added artist_data for artist images and bios.<br />' .
- '- Added DNS to access list to allow for dns based ACLs.<br />';
+ $update_string = '- Added disk to Album table.<br />' .
+ '- Added artist_data for artist images and bios.<br />' .
+ '- Added DNS to access list to allow for dns based ACLs.<br />';
- $version[] = array('version' => '340009','description' => $update_string);
+ $version[] = array('version' => '340009','description' => $update_string);
- $update_string = '- Removed Playlist Add preference.<br />' .
- '- Moved Localplay* preferences to options.<br />' .
- '- Tweaked Default Playlist Method.<br />' .
- '- Change wording on Localplay preferences.<br />';
- $version[] = array('version' => '340010','description'=>$update_string);
+ $update_string = '- Removed Playlist Add preference.<br />' .
+ '- Moved Localplay* preferences to options.<br />' .
+ '- Tweaked Default Playlist Method.<br />' .
+ '- Change wording on Localplay preferences.<br />';
+ $version[] = array('version' => '340010','description'=>$update_string);
- $update_string = '- Added api session table, will eventually recombine with others.<br />';
+ $update_string = '- Added api session table, will eventually recombine with others.<br />';
- $version[] = array('version' => '340011','description'=>$update_string);
+ $version[] = array('version' => '340011','description'=>$update_string);
- $update_string = '- Added Democratic Table for new democratic play features.<br />' .
- '- Added Add Path to Catalog to improve add speeds on large catalogs.<br />';
+ $update_string = '- Added Democratic Table for new democratic play features.<br />' .
+ '- Added Add Path to Catalog to improve add speeds on large catalogs.<br />';
- $version[] = array('version' => '340012','description'=>$update_string);
+ $version[] = array('version' => '340012','description'=>$update_string);
- $update_string = '- Removed Unused Preferences.<br />' .
- '- Changed Localplay Config to Localplay Access.<br />' .
- '- Changed all XML-RPC acls to RPC to reflect inclusion of new API.<br />';
+ $update_string = '- Removed Unused Preferences.<br />' .
+ '- Changed Localplay Config to Localplay Access.<br />' .
+ '- Changed all XML-RPC acls to RPC to reflect inclusion of new API.<br />';
- $version[] = array('version' => '340013','description'=>$update_string);
+ $version[] = array('version' => '340013','description'=>$update_string);
- $update_string = '- Removed API Session table, been a nice run....<br />' .
- '- Alterted Session table to handle API sessions correctly.<br />';
+ $update_string = '- Removed API Session table, been a nice run....<br />' .
+ '- Alterted Session table to handle API sessions correctly.<br />';
- $version[] = array('version' => '340014','description'=>$update_string);
+ $version[] = array('version' => '340014','description'=>$update_string);
- $update_string = '- Alter Playlist Date Field to fix issues with some MySQL configurations.<br />' .
- '- Alter Rating type to correct AVG issue on searching.<br />';
+ $update_string = '- Alter Playlist Date Field to fix issues with some MySQL configurations.<br />' .
+ '- Alter Rating type to correct AVG issue on searching.<br />';
- $version[] = array('version' => '340015','description'=>$update_string);
+ $version[] = array('version' => '340015','description'=>$update_string);
- $update_string = '- Alter the Democratic Playlist table, adding base_playlist.<br />' .
- '- Alter tmp_playlist to account for Democratic changes.<br />' .
- '- Cleared Existing Democratic playlists due to changes.<br />';
+ $update_string = '- Alter the Democratic Playlist table, adding base_playlist.<br />' .
+ '- Alter tmp_playlist to account for Democratic changes.<br />' .
+ '- Cleared Existing Democratic playlists due to changes.<br />';
- $version[] = array('version' => '340016','description'=>$update_string);
+ $version[] = array('version' => '340016','description'=>$update_string);
- $update_string = '- Fix Tables for new Democratic Play methodology.<br />';
+ $update_string = '- Fix Tables for new Democratic Play methodology.<br />';
- $version[] = array('version' => '340017','description'=>$update_string);
+ $version[] = array('version' => '340017','description'=>$update_string);
- $update_string = '- Attempt to detect and correct charset issues between filesystem and database.<br />';
+ $update_string = '- Attempt to detect and correct charset issues between filesystem and database.<br />';
- $version[] = array('version' => '340018','description'=>$update_string);
+ $version[] = array('version' => '340018','description'=>$update_string);
- $update_string = '- Modify the Tag tables so that they actually work.<br />' .
- '- Alter the Prefix fields to allow for more prefixs.<br />';
+ $update_string = '- Modify the Tag tables so that they actually work.<br />' .
+ '- Alter the Prefix fields to allow for more prefixs.<br />';
- $version[] = array('version' => '350001','description'=>$update_string);
+ $version[] = array('version' => '350001','description'=>$update_string);
- $update_string = '- Remove Genre Field from song table.<br />' .
- '- Add user_catalog table for tracking user<-->catalog mappings.<br />' .
- '- Add tmp_browse to handle caching rather then session table.<br />';
+ $update_string = '- Remove Genre Field from song table.<br />' .
+ '- Add user_catalog table for tracking user<-->catalog mappings.<br />' .
+ '- Add tmp_browse to handle caching rather then session table.<br />';
- $version[] = array('version' => '350002','description'=>$update_string);
+ $version[] = array('version' => '350002','description'=>$update_string);
- $update_string = '- Modify Tag tables.<br />' .
- '- Remove useless config preferences.<br />';
+ $update_string = '- Modify Tag tables.<br />' .
+ '- Remove useless config preferences.<br />';
- $version[] = array('version'=> '350003','description'=>$update_string);
+ $version[] = array('version'=> '350003','description'=>$update_string);
- $update_string = '- Modify ACL table to enable IPv6 ACL support<br />' .
- '- Modify Session Tables to store IPv6 addresses if provided<br />' .
- '- Modify IP History table to store IPv6 addresses and User Agent<br />';
+ $update_string = '- Modify ACL table to enable IPv6 ACL support<br />' .
+ '- Modify Session Tables to store IPv6 addresses if provided<br />' .
+ '- Modify IP History table to store IPv6 addresses and User Agent<br />';
- $version[] = array('version'=>'350004','description'=>$update_string);
+ $version[] = array('version'=>'350004','description'=>$update_string);
- $update_string = "- Add table for Video files<br />";
+ $update_string = "- Add table for Video files<br />";
- $version[] = array('version'=>'350005','description'=>$update_string);
+ $version[] = array('version'=>'350005','description'=>$update_string);
- $update_string = "- Add data for Lyrics<br />";
+ $update_string = "- Add data for Lyrics<br />";
- $version[] = array('version'=>'350006','description'=>$update_string);
+ $version[] = array('version'=>'350006','description'=>$update_string);
- $update_string = '- Remove unused fields from catalog, playlist, playlist_data<br />' .
- '- Add tables for dynamic playlists<br />' .
- '- Add last_clean to catalog table<br />' .
- '- Add track to tmp_playlist_data<br />' .
- '- Increase Thumbnail blob size<br />';
+ $update_string = '- Remove unused fields from catalog, playlist, playlist_data<br />' .
+ '- Add tables for dynamic playlists<br />' .
+ '- Add last_clean to catalog table<br />' .
+ '- Add track to tmp_playlist_data<br />' .
+ '- Increase Thumbnail blob size<br />';
- $version[] = array('version'=>'350007','description'=>$update_string);
+ $version[] = array('version'=>'350007','description'=>$update_string);
- $update_string = '- Modify Now Playing table to handle Videos<br />' .
- '- Modify tmp_browse to make it easier to prune<br />' .
- '- Add missing indexes to the _data tables<br />' .
- '- Drop unused song.hash<br />' .
- '- Add addition_time and update_time to video table<br />';
+ $update_string = '- Modify Now Playing table to handle Videos<br />' .
+ '- Modify tmp_browse to make it easier to prune<br />' .
+ '- Add missing indexes to the _data tables<br />' .
+ '- Drop unused song.hash<br />' .
+ '- Add addition_time and update_time to video table<br />';
- $version[] = array('version'=>'350008','description'=>$update_string);
+ $version[] = array('version'=>'350008','description'=>$update_string);
- $update_string = '- Add MBID (MusicBrainz ID) fields<br />' .
- '- Remove useless preferences<br />';
+ $update_string = '- Add MBID (MusicBrainz ID) fields<br />' .
+ '- Remove useless preferences<br />';
- $version[] = array('version'=>'360001','description'=>$update_string);
+ $version[] = array('version'=>'360001','description'=>$update_string);
- $update_string = '- Add Bandwidth and Feature preferences to simplify how interface is presented<br />' .
- '- Change Tables to FULLTEXT() for improved searching<br />' .
- '- Increase Filename lengths to 4096<br />' .
- '- Remove useless "KEY" reference from ACL and Catalog tables<br />' .
- '- Add new Remote User / Remote Password fields to Catalog<br />';
+ $update_string = '- Add Bandwidth and Feature preferences to simplify how interface is presented<br />' .
+ '- Change Tables to FULLTEXT() for improved searching<br />' .
+ '- Increase Filename lengths to 4096<br />' .
+ '- Remove useless "KEY" reference from ACL and Catalog tables<br />' .
+ '- Add new Remote User / Remote Password fields to Catalog<br />';
- $version[] = array('version'=>'360002','description'=>$update_string);
+ $version[] = array('version'=>'360002','description'=>$update_string);
- $update_string = '- Add image table to store images.<br />' .
- '- Drop album_data and artist_data.<br />';
- $version[] = array('version'=>'360003','description'=>$update_string);
+ $update_string = '- Add image table to store images.<br />' .
+ '- Drop album_data and artist_data.<br />';
+ $version[] = array('version'=>'360003','description'=>$update_string);
- $update_string = '- Add uniqueness constraint to ratings.<br />';
- $version[] = array('version' => '360004','description' => $update_string);
+ $update_string = '- Add uniqueness constraint to ratings.<br />';
+ $version[] = array('version' => '360004','description' => $update_string);
- $update_string = '- Modify tmp_browse to allow caching of multiple browses per session.<br />';
- $version[] = array('version' => '360005','description' => $update_string);
+ $update_string = '- Modify tmp_browse to allow caching of multiple browses per session.<br />';
+ $version[] = array('version' => '360005','description' => $update_string);
- $update_string = '- Add table for dynamic playlists.<br />';
- $version[] = array('version' => '360006','description' => $update_string);
+ $update_string = '- Add table for dynamic playlists.<br />';
+ $version[] = array('version' => '360006','description' => $update_string);
- $update_string = '- Add local auth method to session.type.<br />';
- $version[] = array('version' => '360007','description' => $update_string);
+ $update_string = '- Add local auth method to session.type.<br />';
+ $version[] = array('version' => '360007','description' => $update_string);
- $update_string = '- Verify remote_username and remote_password were added correctly to catalog table.<br />';
- $version[] = array('version' => '360008','description' => $update_string);
+ $update_string = '- Verify remote_username and remote_password were added correctly to catalog table.<br />';
+ $version[] = array('version' => '360008','description' => $update_string);
- $update_string = '- Allow long sessionids in tmp_playlist table.<br />';
- $version[] = array('version' => '360009', 'description' => $update_string);
+ $update_string = '- Allow long sessionids in tmp_playlist table.<br />';
+ $version[] = array('version' => '360009', 'description' => $update_string);
- $update_string = '- Allow compound MBIDs in the artist table.<br />';
- $version[] = array('version' => '360010', 'description' => $update_string);
+ $update_string = '- Allow compound MBIDs in the artist table.<br />';
+ $version[] = array('version' => '360010', 'description' => $update_string);
- $update_string = '- Add table to store stream session playlist.<br />';
- $version[] = array('version' => '360011', 'description' => $update_string);
+ $update_string = '- Add table to store stream session playlist.<br />';
+ $version[] = array('version' => '360011', 'description' => $update_string);
- return $version;
+ return $version;
- } // populate_version
+ } // populate_version
- /**
- * display_update
- * This displays a list of the needed
- * updates to the database. This will actually
- * echo out the list...
- */
- public static function display_update() {
+ /**
+ * display_update
+ * This displays a list of the needed
+ * updates to the database. This will actually
+ * echo out the list...
+ */
+ public static function display_update() {
- $current_version = self::get_version();
- if (!is_array(self::$versions)) {
- self::$versions = self::populate_version();
- }
- $update_needed = false;
+ $current_version = self::get_version();
+ if (!is_array(self::$versions)) {
+ self::$versions = self::populate_version();
+ }
+ $update_needed = false;
- if (!defined('CLI')) { echo "<ul>\n"; }
+ if (!defined('CLI')) { echo "<ul>\n"; }
- foreach (self::$versions as $update) {
+ foreach (self::$versions as $update) {
- if ($update['version'] > $current_version) {
- $update_needed = true;
- if (!defined('CLI')) { echo '<li><b>'; }
- echo 'Version: ', self::format_version($update['version']);
- if (defined('CLI')) {
- echo "\n", str_replace('<br />', "\n", $update['description']), "\n";
- }
- else {
- echo '</b><br />', $update['description'], "<br /></li>\n";
- }
- } // if newer
+ if ($update['version'] > $current_version) {
+ $update_needed = true;
+ if (!defined('CLI')) { echo '<li><b>'; }
+ echo 'Version: ', self::format_version($update['version']);
+ if (defined('CLI')) {
+ echo "\n", str_replace('<br />', "\n", $update['description']), "\n";
+ }
+ else {
+ echo '</b><br />', $update['description'], "<br /></li>\n";
+ }
+ } // if newer
- } // foreach versions
+ } // foreach versions
- if (!defined('CLI')) { echo "</ul>\n"; }
+ if (!defined('CLI')) { echo "</ul>\n"; }
- if (!$update_needed) {
- if (!defined('CLI')) { echo '<p align="center">'; }
- echo T_('No updates needed.');
- if (!defined('CLI')) {
- echo '[<a href="', Config::get('web_path'), '">Return</a>]</p>';
- }
- else {
- echo "\n";
- }
- }
- } // display_update
+ if (!$update_needed) {
+ if (!defined('CLI')) { echo '<p align="center">'; }
+ echo T_('No updates needed.');
+ if (!defined('CLI')) {
+ echo '[<a href="', Config::get('web_path'), '">Return</a>]</p>';
+ }
+ else {
+ echo "\n";
+ }
+ }
+ } // display_update
- /**
- * run_update
- * This function actually updates the db.
- * it goes through versions and finds the ones
- * that need to be run. Checking to make sure
- * the function exists first.
- */
- public static function run_update() {
+ /**
+ * run_update
+ * This function actually updates the db.
+ * it goes through versions and finds the ones
+ * that need to be run. Checking to make sure
+ * the function exists first.
+ */
+ public static function run_update() {
- /* Nuke All Active session before we start the mojo */
- $sql = "TRUNCATE session";
- $db_results = Dba::write($sql);
-
- // Prevent the script from timing out, which could be bad
- set_time_limit(0);
-
- /* Verify that there are no plugins installed
- //FIXME: provide a link to remove all plugins, otherwise this could turn into a catch 22
- if (!$self::plugins_installed()) {
- $GLOBALS['error']->add_error('general', T_('Plugins detected, please remove all Plugins and try again'));
- return false;
- } */
-
- $methods = array();
+ /* Nuke All Active session before we start the mojo */
+ $sql = "TRUNCATE session";
+ $db_results = Dba::write($sql);
+
+ // Prevent the script from timing out, which could be bad
+ set_time_limit(0);
+
+ /* Verify that there are no plugins installed
+ //FIXME: provide a link to remove all plugins, otherwise this could turn into a catch 22
+ if (!$self::plugins_installed()) {
+ $GLOBALS['error']->add_error('general', T_('Plugins detected, please remove all Plugins and try again'));
+ return false;
+ } */
+
+ $methods = array();
- $current_version = self::get_version();
-
- // Run a check to make sure that they don't try to upgrade from a version that
- // won't work.
- if ($current_version < '340001') {
- echo "<p align=\"center\">Database version too old, please upgrade to <a href=\"http://ampache.org/downloads/ampache-3.3.3.5.tar.gz\">Ampache-3.3.3.5</a> first</p>";
- return false;
- }
-
-
- $methods = get_class_methods('Update');
-
- if (!is_array((self::$versions))) {
- self::$versions = self::populate_version();
- }
-
- foreach (self::$versions as $version) {
+ $current_version = self::get_version();
+
+ // Run a check to make sure that they don't try to upgrade from a version that
+ // won't work.
+ if ($current_version < '340001') {
+ echo "<p align=\"center\">Database version too old, please upgrade to <a href=\"http://ampache.org/downloads/ampache-3.3.3.5.tar.gz\">Ampache-3.3.3.5</a> first</p>";
+ return false;
+ }
+
+
+ $methods = get_class_methods('Update');
+
+ if (!is_array((self::$versions))) {
+ self::$versions = self::populate_version();
+ }
+
+ foreach (self::$versions as $version) {
- // If it's newer than our current version
- // let's see if a function exists and run the
- // bugger
- if ($version['version'] > $current_version) {
- $update_function = "update_" . $version['version'];
- if (in_array($update_function,$methods)) {
- $success = call_user_func(array('Update',$update_function));
-
- // If the update fails drop out
- if (!$success) {
- Error::display('update');
- return false;
- }
- }
-
- }
-
- } // end foreach version
+ // If it's newer than our current version
+ // let's see if a function exists and run the
+ // bugger
+ if ($version['version'] > $current_version) {
+ $update_function = "update_" . $version['version'];
+ if (in_array($update_function,$methods)) {
+ $success = call_user_func(array('Update',$update_function));
+
+ // If the update fails drop out
+ if (!$success) {
+ Error::display('update');
+ return false;
+ }
+ }
+
+ }
+
+ } // end foreach version
- // Once we've run all of the updates let's re-sync the character set as the user
- // can change this between updates and cause mis-matches on any new tables
- Dba::reset_db_charset();
+ // Once we've run all of the updates let's re-sync the character set as the user
+ // can change this between updates and cause mis-matches on any new tables
+ Dba::reset_db_charset();
- } // run_update
+ } // run_update
- /**
- * set_version
- * This updates the 'update_info' which is used by the updater
- * and plugins
- */
- private static function set_version($key,$value) {
+ /**
+ * set_version
+ * This updates the 'update_info' which is used by the updater
+ * and plugins
+ */
+ private static function set_version($key,$value) {
- $sql = "UPDATE update_info SET value='$value' WHERE `key`='$key'";
- $db_results = Dba::write($sql);
+ $sql = "UPDATE update_info SET value='$value' WHERE `key`='$key'";
+ $db_results = Dba::write($sql);
- } //set_version
+ } //set_version
- /**
- * update_340001
- * This update moves back to the ID for user UID and
- * adds date to the user_vote so that it can be sorted
- * correctly
- */
- private function update_340001() {
+ /**
+ * update_340001
+ * This update moves back to the ID for user UID and
+ * adds date to the user_vote so that it can be sorted
+ * correctly
+ */
+ private function update_340001() {
- // Build the User -> ID map using the username as the key
- $sql = "SELECT `id`,`username` FROM `user`";
- $db_results = Dba::read($sql);
+ // Build the User -> ID map using the username as the key
+ $sql = "SELECT `id`,`username` FROM `user`";
+ $db_results = Dba::read($sql);
- $user_array = array();
+ $user_array = array();
- while ($r = Dba::fetch_assoc($db_results)) {
- $username = $r['username'];
- $user_array[$username] = Dba::escape($r['id']);
- } // end while
+ while ($r = Dba::fetch_assoc($db_results)) {
+ $username = $r['username'];
+ $user_array[$username] = Dba::escape($r['id']);
+ } // end while
- // Alter the user table so that you can't have an ID beyond the
- // range of the other tables which have to allow for -1
- $sql = "ALTER TABLE `user` CHANGE `id` `id` INT ( 11 ) NOT NULL AUTO_INCREMENT";
- $db_results = Dba::write($sql);
+ // Alter the user table so that you can't have an ID beyond the
+ // range of the other tables which have to allow for -1
+ $sql = "ALTER TABLE `user` CHANGE `id` `id` INT ( 11 ) NOT NULL AUTO_INCREMENT";
+ $db_results = Dba::write($sql);
- // Now pull the access list users, alter table and then re-insert
- $sql = "SELECT DISTINCT(`user`) FROM `access_list`";
- $db_results = Dba::read($sql);
+ // Now pull the access list users, alter table and then re-insert
+ $sql = "SELECT DISTINCT(`user`) FROM `access_list`";
+ $db_results = Dba::read($sql);
- while ($r = Dba::fetch_assoc($db_results)) {
- // Build the new SQL
- $username = $r['user'];
- $user_id = $user_array[$username];
- $username = Dba::escape($username);
+ while ($r = Dba::fetch_assoc($db_results)) {
+ // Build the new SQL
+ $username = $r['user'];
+ $user_id = $user_array[$username];
+ $username = Dba::escape($username);
- $sql = "UPDATE `access_list` SET `user`='$user_id' WHERE `user`='$username'";
- $update_results = Dba::write($sql);
+ $sql = "UPDATE `access_list` SET `user`='$user_id' WHERE `user`='$username'";
+ $update_results = Dba::write($sql);
- } // end while access_list
+ } // end while access_list
- // Alter the table
- $sql = "ALTER TABLE `access_list` CHANGE `user` `user` INT ( 11 ) NOT NULL";
- $db_results = Dba::write($sql);
+ // Alter the table
+ $sql = "ALTER TABLE `access_list` CHANGE `user` `user` INT ( 11 ) NOT NULL";
+ $db_results = Dba::write($sql);
- // Now pull flagged users, update and alter
- $sql = "SELECT DISTINCT(`user`) FROM `flagged`";
- $db_results = Dba::read($sql);
+ // Now pull flagged users, update and alter
+ $sql = "SELECT DISTINCT(`user`) FROM `flagged`";
+ $db_results = Dba::read($sql);
- while ($r = Dba::fetch_assoc($db_results)) {
- $username = $r['user'];
- $user_id = $user_array[$username];
- $username = Dba::escape($username);
+ while ($r = Dba::fetch_assoc($db_results)) {
+ $username = $r['user'];
+ $user_id = $user_array[$username];
+ $username = Dba::escape($username);
- $sql = "UPDATE `flagged` SET `user`='$user_id' WHERE `user`='$username'";
- $update_results = Dba::write($sql);
+ $sql = "UPDATE `flagged` SET `user`='$user_id' WHERE `user`='$username'";
+ $update_results = Dba::write($sql);
- } // end while
+ } // end while
- // Alter the table
- $sql = "ALTER TABLE `flagged` CHANGE `user` `user` INT ( 11 ) NOT NULL";
- $db_results = Dba::write($sql);
+ // Alter the table
+ $sql = "ALTER TABLE `flagged` CHANGE `user` `user` INT ( 11 ) NOT NULL";
+ $db_results = Dba::write($sql);
- // Now fix up the ip history
- $sql = "SELECT DISTINCT(`user`) FROM `ip_history`";
- $db_results = Dba::read($sql);
+ // Now fix up the ip history
+ $sql = "SELECT DISTINCT(`user`) FROM `ip_history`";
+ $db_results = Dba::read($sql);
- while ($r = Dba::fetch_assoc($db_results)) {
- $username = $r['user'];
- $user_id = $user_array[$username];
- $username = Dba::escape($username);
+ while ($r = Dba::fetch_assoc($db_results)) {
+ $username = $r['user'];
+ $user_id = $user_array[$username];
+ $username = Dba::escape($username);
- $sql = "UPDATE `ip_history` SET `user`='$user_id' WHERE `user`='$username'";
- $update_results = Dba::write($sql);
+ $sql = "UPDATE `ip_history` SET `user`='$user_id' WHERE `user`='$username'";
+ $update_results = Dba::write($sql);
- } // end while
+ } // end while
- // Alter the table
- $sql = "ALTER TABLE `ip_history` CHANGE `user` `user` INT ( 11 ) NOT NULL";
- $db_results = Dba::write($sql);
+ // Alter the table
+ $sql = "ALTER TABLE `ip_history` CHANGE `user` `user` INT ( 11 ) NOT NULL";
+ $db_results = Dba::write($sql);
- // Now fix now playing
- $sql = "SELECT DISTINCT(`user`) FROM `now_playing`";
- $db_results = Dba::read($sql);
+ // Now fix now playing
+ $sql = "SELECT DISTINCT(`user`) FROM `now_playing`";
+ $db_results = Dba::read($sql);
- while ($r = Dba::fetch_assoc($db_results)) {
- $username = $r['user'];
- $user_id = $user_array[$username];
- $username = Dba::escape($username);
+ while ($r = Dba::fetch_assoc($db_results)) {
+ $username = $r['user'];
+ $user_id = $user_array[$username];
+ $username = Dba::escape($username);
- $sql = "UPDATE `now_playing` SET `user`='$user_id' WHERE `user`='$username'";
- $update_results = Dba::write($sql);
+ $sql = "UPDATE `now_playing` SET `user`='$user_id' WHERE `user`='$username'";
+ $update_results = Dba::write($sql);
- } // end while
+ } // end while
- // Alter the table
- $sql = "ALTER TABLE `now_playing` CHANGE `user` `user` INT ( 11 ) NOT NULL";
- $db_results = Dba::write($sql);
+ // Alter the table
+ $sql = "ALTER TABLE `now_playing` CHANGE `user` `user` INT ( 11 ) NOT NULL";
+ $db_results = Dba::write($sql);
- // Now fix the playlist table
- $sql = "SELECT DISTINCT(`user`) FROM `playlist`";
- $db_results = Dba::read($sql);
+ // Now fix the playlist table
+ $sql = "SELECT DISTINCT(`user`) FROM `playlist`";
+ $db_results = Dba::read($sql);
- while ($r = Dba::fetch_assoc($db_results)) {
- $username = $r['user'];
- $user_id = $user_array[$username];
- $username = Dba::escape($username);
+ while ($r = Dba::fetch_assoc($db_results)) {
+ $username = $r['user'];
+ $user_id = $user_array[$username];
+ $username = Dba::escape($username);
- $sql = "UPDATE `playlist` SET `user`='$user_id' WHERE `user`='$username'";
- $update_results = Dba::write($sql);
+ $sql = "UPDATE `playlist` SET `user`='$user_id' WHERE `user`='$username'";
+ $update_results = Dba::write($sql);
- } // end while
+ } // end while
- // Alter the table
- $sql = "ALTER TABLE `playlist` CHANGE `user` `user` INT ( 11 ) NOT NULL";
- $db_results = Dba::write($sql);
+ // Alter the table
+ $sql = "ALTER TABLE `playlist` CHANGE `user` `user` INT ( 11 ) NOT NULL";
+ $db_results = Dba::write($sql);
- // Drop unused table
- $sql = "DROP TABLE `playlist_permission`";
- $db_results = Dba::write($sql);
+ // Drop unused table
+ $sql = "DROP TABLE `playlist_permission`";
+ $db_results = Dba::write($sql);
- // Now fix the ratings table
- $sql = "SELECT DISTINCT(`user`) FROM `ratings`";
- $db_results = Dba::read($sql);
+ // Now fix the ratings table
+ $sql = "SELECT DISTINCT(`user`) FROM `ratings`";
+ $db_results = Dba::read($sql);
- while ($r = Dba::fetch_assoc($db_results)) {
- $username = $r['user'];
- $user_id = $user_array[$username];
- $username = Dba::escape($username);
+ while ($r = Dba::fetch_assoc($db_results)) {
+ $username = $r['user'];
+ $user_id = $user_array[$username];
+ $username = Dba::escape($username);
- $sql = "UPDATE `ratings` SET `user`='$user_id' WHERE `user`='$username'";
- $update_results = Dba::write($sql);
+ $sql = "UPDATE `ratings` SET `user`='$user_id' WHERE `user`='$username'";
+ $update_results = Dba::write($sql);
- } // end while
+ } // end while
- $sql = "ALTER TABLE `ratings` CHANGE `user` `user` INT ( 11 ) NOT NULL";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `ratings` CHANGE `user` `user` INT ( 11 ) NOT NULL";
+ $db_results = Dba::write($sql);
- // Now work on the tag_map
- $sql = "ALTER TABLE `tag_map` CHANGE `user_id` `user` INT ( 11 ) NOT NULL";
- $db_results = Dba::write($sql);
+ // Now work on the tag_map
+ $sql = "ALTER TABLE `tag_map` CHANGE `user_id` `user` INT ( 11 ) NOT NULL";
+ $db_results = Dba::write($sql);
- // Now fix user preferences
- $sql = "SELECT DISTINCT(`user`) FROM `user_preference`";
- $db_results = Dba::read($sql);
+ // Now fix user preferences
+ $sql = "SELECT DISTINCT(`user`) FROM `user_preference`";
+ $db_results = Dba::read($sql);
- while ($r = Dba::fetch_assoc($db_results)) {
- $username = $r['user'];
- $user_id = $user_array[$username];
- $username = Dba::escape($username);
+ while ($r = Dba::fetch_assoc($db_results)) {
+ $username = $r['user'];
+ $user_id = $user_array[$username];
+ $username = Dba::escape($username);
- $sql = "UPDATE `user_preference` SET `user`='$user_id' WHERE `user`='$username'";
- $update_results = Dba::write($sql);
+ $sql = "UPDATE `user_preference` SET `user`='$user_id' WHERE `user`='$username'";
+ $update_results = Dba::write($sql);
- } // end while
+ } // end while
- // Alter the table
- $sql = "ALTER TABLE `user_preference` CHANGE `user` `user` INT ( 11 ) NOT NULL";
- $db_results = Dba::write($sql);
+ // Alter the table
+ $sql = "ALTER TABLE `user_preference` CHANGE `user` `user` INT ( 11 ) NOT NULL";
+ $db_results = Dba::write($sql);
- // Add a date to the user_vote
- $sql = "ALTER TABLE `user_vote` ADD `date` INT( 11 ) UNSIGNED NOT NULL";
- $db_results = Dba::write($sql);
+ // Add a date to the user_vote
+ $sql = "ALTER TABLE `user_vote` ADD `date` INT( 11 ) UNSIGNED NOT NULL";
+ $db_results = Dba::write($sql);
- // Add the index for said field
- $sql = "ALTER TABLE `user_vote` ADD INDEX(`date`)";
- $db_results = Dba::write($sql);
+ // Add the index for said field
+ $sql = "ALTER TABLE `user_vote` ADD INDEX(`date`)";
+ $db_results = Dba::write($sql);
- // Add the thumb fields to album
- $sql = "ALTER TABLE `album` ADD `thumb` TINYBLOB NULL ,ADD `thumb_mime` VARCHAR( 128 ) NULL";
- $db_results = Dba::write($sql);
+ // Add the thumb fields to album
+ $sql = "ALTER TABLE `album` ADD `thumb` TINYBLOB NULL ,ADD `thumb_mime` VARCHAR( 128 ) NULL";
+ $db_results = Dba::write($sql);
- // Now add in the min_object_count preference and the random_method
- $sql = "INSERT INTO `preferences` (`name`,`value`,`description`,`level`,`type`,`catagory`) " .
- "VALUES('min_object_count','1','Min Element Count','5','integer','interface')";
- $db_results = Dba::write($sql);
+ // Now add in the min_object_count preference and the random_method
+ $sql = "INSERT INTO `preferences` (`name`,`value`,`description`,`level`,`type`,`catagory`) " .
+ "VALUES('min_object_count','1','Min Element Count','5','integer','interface')";
+ $db_results = Dba::write($sql);
- $sql = "INSERT INTO `preferences` (`name`,`value`,`description`,`level`,`type`,`catagory`) " .
- "VALUES('random_method','default','Random Method','5','string','interface')";
- $db_results = Dba::write($sql);
+ $sql = "INSERT INTO `preferences` (`name`,`value`,`description`,`level`,`type`,`catagory`) " .
+ "VALUES('random_method','default','Random Method','5','string','interface')";
+ $db_results = Dba::write($sql);
- // Delete old preference
- $sql = "DELETE FROM `preferences` WHERE `name`='min_album_size'";
- $db_results = Dba::write($sql);
+ // Delete old preference
+ $sql = "DELETE FROM `preferences` WHERE `name`='min_album_size'";
+ $db_results = Dba::write($sql);
- // Make Hash a non-required field and smaller
- $sql = "ALTER TABLE `song` CHANGE `hash` `hash` VARCHAR ( 64 ) NULL";
- $db_results = Dba::write($sql);
+ // Make Hash a non-required field and smaller
+ $sql = "ALTER TABLE `song` CHANGE `hash` `hash` VARCHAR ( 64 ) NULL";
+ $db_results = Dba::write($sql);
- // Make user access an int, nothing else
- $sql = "UPDATE `user` SET `access`='100' WHERE `access`='admin'";
- $db_results = Dba::write($sql);
+ // Make user access an int, nothing else
+ $sql = "UPDATE `user` SET `access`='100' WHERE `access`='admin'";
+ $db_results = Dba::write($sql);
- $sql = "UPDATE `user` SET `access`='25' WHERE `access`='user'";
- $db_results = Dba::write($sql);
+ $sql = "UPDATE `user` SET `access`='25' WHERE `access`='user'";
+ $db_results = Dba::write($sql);
- $sql = "UPDATE `user` SET `access`='5' WHERE `access`='guest'";
- $db_results = Dba::write($sql);
+ $sql = "UPDATE `user` SET `access`='5' WHERE `access`='guest'";
+ $db_results = Dba::write($sql);
- // Alter the table
- $sql = "ALTER TABLE `user` CHANGE `access` `access` TINYINT ( 4 ) UNSIGNED NOT NULL";
- $db_results = Dba::write($sql);
+ // Alter the table
+ $sql = "ALTER TABLE `user` CHANGE `access` `access` TINYINT ( 4 ) UNSIGNED NOT NULL";
+ $db_results = Dba::write($sql);
- // Add in Label and Catalog # and language
- $sql = "ALTER TABLE `song_ext_data` ADD `label` VARCHAR ( 128 ) NULL, ADD `catalog_number` VARCHAR ( 128 ) NULL, ADD `language` VARCHAR ( 128 ) NULL";
- $db_results = Dba::write($sql);
+ // Add in Label and Catalog # and language
+ $sql = "ALTER TABLE `song_ext_data` ADD `label` VARCHAR ( 128 ) NULL, ADD `catalog_number` VARCHAR ( 128 ) NULL, ADD `language` VARCHAR ( 128 ) NULL";
+ $db_results = Dba::write($sql);
- /* Fix every users preferences */
- $sql = "SELECT `id` FROM `user`";
- $db_results = Dba::read($sql);
+ /* Fix every users preferences */
+ $sql = "SELECT `id` FROM `user`";
+ $db_results = Dba::read($sql);
- User::fix_preferences('-1');
+ User::fix_preferences('-1');
- while ($r = Dba::fetch_assoc($db_results)) {
- User::fix_preferences($r['id']);
- } // while results
+ while ($r = Dba::fetch_assoc($db_results)) {
+ User::fix_preferences($r['id']);
+ } // while results
- self::set_version('db_version','340001');
+ self::set_version('db_version','340001');
- return true;
+ return true;
- } //update_340001
+ } //update_340001
- /**
- * update_340002
- * This update tweaks the preferences a little more and make sure that the
- * min_object_count has a rational value
- */
- private function update_340002() {
+ /**
+ * update_340002
+ * This update tweaks the preferences a little more and make sure that the
+ * min_object_count has a rational value
+ */
+ private function update_340002() {
- /* Add the offset_limit preference and remove it from the user table */
- $sql = "INSERT INTO `preferences` (`name`,`value`,`description`,`level`,`type`,`catagory`) " .
- "VALUES ('offset_limit','50','Offset Limit','5','integer','interface')";
- $db_results = Dba::write($sql);
+ /* Add the offset_limit preference and remove it from the user table */
+ $sql = "INSERT INTO `preferences` (`name`,`value`,`description`,`level`,`type`,`catagory`) " .
+ "VALUES ('offset_limit','50','Offset Limit','5','integer','interface')";
+ $db_results = Dba::write($sql);
- self::set_version('db_version','340002');
+ self::set_version('db_version','340002');
- return true;
+ return true;
- } // update_340002
+ } // update_340002
- /**
- * update_340003
- * This update moves the album art out of the album table
- * and puts it in an album_data table. It also makes some
- * minor changes to the song table in an attempt to reduce
- * the size of each row
- */
- public static function update_340003() {
+ /**
+ * update_340003
+ * This update moves the album art out of the album table
+ * and puts it in an album_data table. It also makes some
+ * minor changes to the song table in an attempt to reduce
+ * the size of each row
+ */
+ public static function update_340003() {
- $sql = "ALTER TABLE `song` CHANGE `mode` `mode` ENUM( 'abr', 'vbr', 'cbr' ) NULL DEFAULT 'cbr'";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `song` CHANGE `mode` `mode` ENUM( 'abr', 'vbr', 'cbr' ) NULL DEFAULT 'cbr'";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `song` CHANGE `time` `time` SMALLINT( 5 ) UNSIGNED NOT NULL DEFAULT '0'";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `song` CHANGE `time` `time` SMALLINT( 5 ) UNSIGNED NOT NULL DEFAULT '0'";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `song` CHANGE `rate` `rate` MEDIUMINT( 8 ) UNSIGNED NOT NULL DEFAULT '0'";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `song` CHANGE `rate` `rate` MEDIUMINT( 8 ) UNSIGNED NOT NULL DEFAULT '0'";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `song` CHANGE `bitrate` `bitrate` MEDIUMINT( 8 ) UNSIGNED NOT NULL DEFAULT '0'";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `song` CHANGE `bitrate` `bitrate` MEDIUMINT( 8 ) UNSIGNED NOT NULL DEFAULT '0'";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `song` CHANGE `track` `track` SMALLINT( 5 ) UNSIGNED NULL DEFAULT NULL ";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `song` CHANGE `track` `track` SMALLINT( 5 ) UNSIGNED NULL DEFAULT NULL ";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `user` CHANGE `disabled` `disabled` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT '0'";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `user` CHANGE `disabled` `disabled` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT '0'";
+ $db_results = Dba::write($sql);
- $sql = "CREATE TABLE `album_data` (" .
- "`album_id` INT( 11 ) UNSIGNED NOT NULL , " .
- "`art` MEDIUMBLOB NULL , " .
- "`art_mime` VARCHAR( 64 ) NULL , " .
- "`thumb` BLOB NULL , " .
- "`thumb_mime` VARCHAR( 64 ) NULL , " .
- "UNIQUE ( `album_id` )" .
- ") ENGINE = MYISAM";
- $db_results = Dba::write($sql);
+ $sql = "CREATE TABLE `album_data` (" .
+ "`album_id` INT( 11 ) UNSIGNED NOT NULL , " .
+ "`art` MEDIUMBLOB NULL , " .
+ "`art_mime` VARCHAR( 64 ) NULL , " .
+ "`thumb` BLOB NULL , " .
+ "`thumb_mime` VARCHAR( 64 ) NULL , " .
+ "UNIQUE ( `album_id` )" .
+ ") ENGINE = MYISAM";
+ $db_results = Dba::write($sql);
- /* Foreach the Albums and move the data into the new album_data table */
- $sql = "SELECT * FROM album";
- $db_results = Dba::write($sql);
+ /* Foreach the Albums and move the data into the new album_data table */
+ $sql = "SELECT * FROM album";
+ $db_results = Dba::write($sql);
- while ($data = Dba::fetch_assoc($db_results)) {
- $id = $data['id'];
- $art = Dba::escape($data['art']);
- $art_mime = Dba::escape($data['art_mime']);
- $thumb = Dba::escape($data['thumb']);
- $thumb_mime = Dba::escape($data['thumb_mime']);
- $sql = "INSERT INTO `album_data` (`album_id`,`art`,`art_mime`,`thumb`,`thumb_mime`)" .
- " VALUES ('$id','$art','$art_mime','$thumb','$thumb_mime')";
- $insert_results = Dba::write($sql);
- } // end while
+ while ($data = Dba::fetch_assoc($db_results)) {
+ $id = $data['id'];
+ $art = Dba::escape($data['art']);
+ $art_mime = Dba::escape($data['art_mime']);
+ $thumb = Dba::escape($data['thumb']);
+ $thumb_mime = Dba::escape($data['thumb_mime']);
+ $sql = "INSERT INTO `album_data` (`album_id`,`art`,`art_mime`,`thumb`,`thumb_mime`)" .
+ " VALUES ('$id','$art','$art_mime','$thumb','$thumb_mime')";
+ $insert_results = Dba::write($sql);
+ } // end while
- $sql = "RENAME TABLE `song_ext_data` TO `song_data`";
- $db_results = Dba::write($sql);
+ $sql = "RENAME TABLE `song_ext_data` TO `song_data`";
+ $db_results = Dba::write($sql);
- $sql = "RENAME TABLE `preferences` TO `preference`";
- $db_results = Dba::write($sql);
+ $sql = "RENAME TABLE `preferences` TO `preference`";
+ $db_results = Dba::write($sql);
- $sql = "RENAME TABLE `ratings` TO `rating`";
- $db_results = Dba::write($sql);
+ $sql = "RENAME TABLE `ratings` TO `rating`";
+ $db_results = Dba::write($sql);
- // Go ahead and drop the art/thumb stuff
- $sql = "ALTER TABLE `album` DROP `art`, DROP `art_mime`, DROP `thumb`, DROP `thumb_mime`";
- $db_results = Dba::write($sql);
+ // Go ahead and drop the art/thumb stuff
+ $sql = "ALTER TABLE `album` DROP `art`, DROP `art_mime`, DROP `thumb`, DROP `thumb_mime`";
+ $db_results = Dba::write($sql);
- // We need to fix the user_vote table
- $sql = "ALTER TABLE `user_vote` CHANGE `user` `user` INT( 11 ) UNSIGNED NOT NULL";
- $db_results = Dba::write($sql);
+ // We need to fix the user_vote table
+ $sql = "ALTER TABLE `user_vote` CHANGE `user` `user` INT( 11 ) UNSIGNED NOT NULL";
+ $db_results = Dba::write($sql);
- // Remove offset limit from the user
- $sql = "ALTER TABLE `user` DROP `offset_limit`";
- $db_results = Dba::write($sql);
+ // Remove offset limit from the user
+ $sql = "ALTER TABLE `user` DROP `offset_limit`";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `rating` CHANGE `user_rating` `rating` ENUM( '-1', '0', '1', '2', '3', '4', '5' ) NOT NULL DEFAULT '0'";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `rating` CHANGE `user_rating` `rating` ENUM( '-1', '0', '1', '2', '3', '4', '5' ) NOT NULL DEFAULT '0'";
+ $db_results = Dba::write($sql);
- /* Add the rate_limit preference */
- $sql = "INSERT INTO `preference` (`name`,`value`,`description`,`level`,`type`,`catagory`) " .
- "VALUES ('rate_limit','8192','Rate Limit','100','integer','streaming')";
- $db_results = Dba::write($sql);
+ /* Add the rate_limit preference */
+ $sql = "INSERT INTO `preference` (`name`,`value`,`description`,`level`,`type`,`catagory`) " .
+ "VALUES ('rate_limit','8192','Rate Limit','100','integer','streaming')";
+ $db_results = Dba::write($sql);
- /* Add the playlist_method preference and remove it from the user table */
- $sql = "INSERT INTO `preference` (`name`,`value`,`description`,`level`,`type`,`catagory`) " .
- "VALUES ('playlist_method','normal','Playlist Method','5','string','streaming')";
- $db_results = Dba::write($sql);
+ /* Add the playlist_method preference and remove it from the user table */
+ $sql = "INSERT INTO `preference` (`name`,`value`,`description`,`level`,`type`,`catagory`) " .
+ "VALUES ('playlist_method','normal','Playlist Method','5','string','streaming')";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `update_info` ADD UNIQUE (`key`)";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `update_info` ADD UNIQUE (`key`)";
+ $db_results = Dba::write($sql);
- $sql = "SELECT `id` FROM `user`";
- $db_results = Dba::read($sql);
+ $sql = "SELECT `id` FROM `user`";
+ $db_results = Dba::read($sql);
- User::fix_preferences('-1');
+ User::fix_preferences('-1');
- while ($r = Dba::fetch_assoc($db_results)) {
- User::fix_preferences($r['id']);
- }
+ while ($r = Dba::fetch_assoc($db_results)) {
+ User::fix_preferences($r['id']);
+ }
- self::set_version('db_version','340003');
-
- return true;
-
- } // update_340003
-
- /**
- * update_340004
- * Update the session.id to varchar(64) to handle
- * newer configs
- */
- public static function update_340004() {
+ self::set_version('db_version','340003');
+
+ return true;
+
+ } // update_340003
+
+ /**
+ * update_340004
+ * Update the session.id to varchar(64) to handle
+ * newer configs
+ */
+ public static function update_340004() {
- /* Alter the session.id so that it's 64 */
- $sql = "ALTER TABLE `session` CHANGE `id` `id` VARCHAR( 64 ) NOT NULL";
- $db_results = Dba::write($sql);
+ /* Alter the session.id so that it's 64 */
+ $sql = "ALTER TABLE `session` CHANGE `id` `id` VARCHAR( 64 ) NOT NULL";
+ $db_results = Dba::write($sql);
- /* Add Playlist Related Preferences */
- $sql = "INSERT INTO `preference` (`name`,`value`,`description`,`level`,`type`,`catagory`) " .
- "VALUES ('playlist_add','append','Add Behavior','5','string','playlist')";
- $db_results = Dba::write($sql);
+ /* Add Playlist Related Preferences */
+ $sql = "INSERT INTO `preference` (`name`,`value`,`description`,`level`,`type`,`catagory`) " .
+ "VALUES ('playlist_add','append','Add Behavior','5','string','playlist')";
+ $db_results = Dba::write($sql);
- // Switch the existing preferences over to this new catagory
- $sql = "UPDATE `preference` SET `catagory`='playlist' WHERE `name`='playlist_method' " .
- " OR `name`='playlist_type'";
- $db_results = Dba::write($sql);
+ // Switch the existing preferences over to this new catagory
+ $sql = "UPDATE `preference` SET `catagory`='playlist' WHERE `name`='playlist_method' " .
+ " OR `name`='playlist_type'";
+ $db_results = Dba::write($sql);
- // Change the default value for playlist_method
- $sql = "UPDATE `preference` SET `value`='normal' WHERE `name`='playlist_method'";
- $db_results = Dba::write($sql);
+ // Change the default value for playlist_method
+ $sql = "UPDATE `preference` SET `value`='normal' WHERE `name`='playlist_method'";
+ $db_results = Dba::write($sql);
- // Add in the shoutbox
- $sql = "CREATE TABLE `user_shout` (`id` INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY , " .
- "`user` INT( 11 ) NOT NULL , " .
- "`text` TEXT NOT NULL , " .
- "`date` INT( 11 ) UNSIGNED NOT NULL , " .
- "`sticky` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT '0', " .
- "`object_id` INT( 11 ) UNSIGNED NOT NULL , " .
- "`object_type` VARCHAR( 32 ) NOT NULL " .
- ") ENGINE = MYISAM";
- $db_results = Dba::write($sql);
+ // Add in the shoutbox
+ $sql = "CREATE TABLE `user_shout` (`id` INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY , " .
+ "`user` INT( 11 ) NOT NULL , " .
+ "`text` TEXT NOT NULL , " .
+ "`date` INT( 11 ) UNSIGNED NOT NULL , " .
+ "`sticky` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT '0', " .
+ "`object_id` INT( 11 ) UNSIGNED NOT NULL , " .
+ "`object_type` VARCHAR( 32 ) NOT NULL " .
+ ") ENGINE = MYISAM";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `user_shout` ADD INDEX ( `sticky` )";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `user_shout` ADD INDEX ( `sticky` )";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `user_shout` ADD INDEX ( `date` )";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `user_shout` ADD INDEX ( `date` )";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `user_shout` ADD INDEX ( `user` )";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `user_shout` ADD INDEX ( `user` )";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `now_playing` CHANGE `start_time` `expire` INT( 11 ) UNSIGNED NOT NULL DEFAULT '0'";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `now_playing` CHANGE `start_time` `expire` INT( 11 ) UNSIGNED NOT NULL DEFAULT '0'";
+ $db_results = Dba::write($sql);
- $sql = "OPTIMIZE TABLE `album`";
- $db_results = Dba::write($sql);
+ $sql = "OPTIMIZE TABLE `album`";
+ $db_results = Dba::write($sql);
- $sql = "SELECT `id` FROM `user`";
- $db_results = Dba::read($sql);
+ $sql = "SELECT `id` FROM `user`";
+ $db_results = Dba::read($sql);
- User::fix_preferences('-1');
+ User::fix_preferences('-1');
- while ($r = Dba::fetch_assoc($db_results)) {
- User::fix_preferences($r['id']);
- }
+ while ($r = Dba::fetch_assoc($db_results)) {
+ User::fix_preferences($r['id']);
+ }
- // Update our database version now that we are all done
- self::set_version('db_version','340004');
+ // Update our database version now that we are all done
+ self::set_version('db_version','340004');
- return true;
+ return true;
- } // update_340004
+ } // update_340004
- /**
- * update_340005
- * This update fixes the preferences types
- */
- public static function update_340005() {
+ /**
+ * update_340005
+ * This update fixes the preferences types
+ */
+ public static function update_340005() {
- // Turn user_rating into a tinyint and call it score
- $sql = "ALTER TABLE `rating` CHANGE `user_rating` `score` TINYINT( 4 ) UNSIGNED NOT NULL DEFAULT '0'";
- $db_results = Dba::write($sql);
+ // Turn user_rating into a tinyint and call it score
+ $sql = "ALTER TABLE `rating` CHANGE `user_rating` `score` TINYINT( 4 ) UNSIGNED NOT NULL DEFAULT '0'";
+ $db_results = Dba::write($sql);
- $sql = "UPDATE `preference` SET `catagory`='playlist' WHERE `name`='random_method'";
- $db_results = Dba::write($sql);
+ $sql = "UPDATE `preference` SET `catagory`='playlist' WHERE `name`='random_method'";
+ $db_results = Dba::write($sql);
- $sql = "INSERT INTO `preference` (`name`,`value`,`description`,`level`,`type`,`catagory`) " .
- "VALUES ('transcode','default','Transcoding','25','string','streaming')";
- $db_results = Dba::write($sql);
+ $sql = "INSERT INTO `preference` (`name`,`value`,`description`,`level`,`type`,`catagory`) " .
+ "VALUES ('transcode','default','Transcoding','25','string','streaming')";
+ $db_results = Dba::write($sql);
- /* We need to check for playlist_method here because I fubar'd an earlier update */
- $sql = "SELECT * FROM `preference` WHERE `name`='playlist_method'";
- $db_results = Dba::read($sql);
- if (!Dba::num_rows($db_results)) {
- /* Add the playlist_method preference and remove it from the user table */
- $sql = "INSERT INTO `preference` (`name`,`value`,`description`,`level`,`type`,`catagory`) " .
- "VALUES ('playlist_method','default','Playlist Method','5','string','playlist')";
- $db_results = Dba::write($sql);
- }
+ /* We need to check for playlist_method here because I fubar'd an earlier update */
+ $sql = "SELECT * FROM `preference` WHERE `name`='playlist_method'";
+ $db_results = Dba::read($sql);
+ if (!Dba::num_rows($db_results)) {
+ /* Add the playlist_method preference and remove it from the user table */
+ $sql = "INSERT INTO `preference` (`name`,`value`,`description`,`level`,`type`,`catagory`) " .
+ "VALUES ('playlist_method','default','Playlist Method','5','string','playlist')";
+ $db_results = Dba::write($sql);
+ }
- // Add in the object_type to the tmpplaylist data table so that we can have non-songs in there
- $sql = "ALTER TABLE `tmp_playlist_data` ADD `object_type` VARCHAR( 32 ) NULL AFTER `tmp_playlist`";
- $db_results = Dba::write($sql);
+ // Add in the object_type to the tmpplaylist data table so that we can have non-songs in there
+ $sql = "ALTER TABLE `tmp_playlist_data` ADD `object_type` VARCHAR( 32 ) NULL AFTER `tmp_playlist`";
+ $db_results = Dba::write($sql);
- $sql = "SELECT `id` FROM `user`";
- $db_results = Dba::read($sql);
+ $sql = "SELECT `id` FROM `user`";
+ $db_results = Dba::read($sql);
- User::fix_preferences('-1');
+ User::fix_preferences('-1');
- while ($r = Dba::fetch_assoc($db_results)) {
- User::fix_preferences($r['id']);
- }
+ while ($r = Dba::fetch_assoc($db_results)) {
+ User::fix_preferences($r['id']);
+ }
- self::set_version('db_version','340005');
+ self::set_version('db_version','340005');
- return true;
+ return true;
- } // update_340005
+ } // update_340005
- /**
- * update_340006
- * This just updates the size of the album_data table
- * and removes the random_method config option
- */
- public static function update_340006() {
+ /**
+ * update_340006
+ * This just updates the size of the album_data table
+ * and removes the random_method config option
+ */
+ public static function update_340006() {
- $sql = "DESCRIBE `album_data`";
- $db_results = Dba::read($sql);
+ $sql = "DESCRIBE `album_data`";
+ $db_results = Dba::read($sql);
- while ($row = Dba::fetch_assoc($db_results)) {
- if ($row['Field'] == 'art' AND $row['Type'] == 'blob') {
- $blob_needed = true;
- }
- } // end while
- if ($blob_needed) {
- $sql = "ALTER TABLE `album_data` CHANGE `art` `art` MEDIUMBLOB NULL DEFAULT NULL";
- $db_results = Dba::write($sql);
- }
+ while ($row = Dba::fetch_assoc($db_results)) {
+ if ($row['Field'] == 'art' AND $row['Type'] == 'blob') {
+ $blob_needed = true;
+ }
+ } // end while
+ if ($blob_needed) {
+ $sql = "ALTER TABLE `album_data` CHANGE `art` `art` MEDIUMBLOB NULL DEFAULT NULL";
+ $db_results = Dba::write($sql);
+ }
- // No matter what remove that random method preference
- $sql = "DELETE FROM `preference` WHERE `name`='random_method'";
- $db_results = Dba::write($sql);
+ // No matter what remove that random method preference
+ $sql = "DELETE FROM `preference` WHERE `name`='random_method'";
+ $db_results = Dba::write($sql);
- $sql = "SELECT `id` FROM `user`";
- $db_results = Dba::read($sql);
+ $sql = "SELECT `id` FROM `user`";
+ $db_results = Dba::read($sql);
- User::fix_preferences('-1');
+ User::fix_preferences('-1');
- while ($r = Dba::fetch_assoc($db_results)) {
- User::fix_preferences($r['id']);
- }
+ while ($r = Dba::fetch_assoc($db_results)) {
+ User::fix_preferences($r['id']);
+ }
- self::set_version('db_version','340006');
+ self::set_version('db_version','340006');
- return true;
+ return true;
- } // update_340006
+ } // update_340006
- /**
- * update_340007
- * This update converts the session.value to a longtext
- * and adds a session_stream table
- */
- public static function update_340007() {
+ /**
+ * update_340007
+ * This update converts the session.value to a longtext
+ * and adds a session_stream table
+ */
+ public static function update_340007() {
- // Tweak the session table to handle larger session vars for my page-a-nation hotness
- $sql = "ALTER TABLE `session` CHANGE `value` `value` LONGTEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL";
- $db_results = Dba::write($sql);
+ // Tweak the session table to handle larger session vars for my page-a-nation hotness
+ $sql = "ALTER TABLE `session` CHANGE `value` `value` LONGTEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL";
+ $db_results = Dba::write($sql);
- // Create the new stream table where we will store stream SIDs
- $sql = "CREATE TABLE `session_stream` ( " .
- "`id` VARCHAR( 64 ) NOT NULL , " .
- "`user` INT( 11 ) UNSIGNED NOT NULL , " .
- "`agent` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL , " .
- "`expire` INT( 11 ) UNSIGNED NOT NULL , " .
- "`ip` INT( 11 ) UNSIGNED NULL , " .
- "PRIMARY KEY ( `id` ) " .
- ") ENGINE = MYISAM";
- $db_results = Dba::write($sql);
+ // Create the new stream table where we will store stream SIDs
+ $sql = "CREATE TABLE `session_stream` ( " .
+ "`id` VARCHAR( 64 ) NOT NULL , " .
+ "`user` INT( 11 ) UNSIGNED NOT NULL , " .
+ "`agent` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL , " .
+ "`expire` INT( 11 ) UNSIGNED NOT NULL , " .
+ "`ip` INT( 11 ) UNSIGNED NULL , " .
+ "PRIMARY KEY ( `id` ) " .
+ ") ENGINE = MYISAM";
+ $db_results = Dba::write($sql);
- // Change the now playing to use stream session ids for its ID
- $sql = "ALTER TABLE `now_playing` CHANGE `id` `id` VARCHAR( 64 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL";
- $db_results = Dba::write($sql);
+ // Change the now playing to use stream session ids for its ID
+ $sql = "ALTER TABLE `now_playing` CHANGE `id` `id` VARCHAR( 64 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL";
+ $db_results = Dba::write($sql);
- // Now longer needed because of the new hotness
- $sql = "ALTER TABLE `now_playing` DROP `session`";
- $db_results = Dba::write($sql);
+ // Now longer needed because of the new hotness
+ $sql = "ALTER TABLE `now_playing` DROP `session`";
+ $db_results = Dba::write($sql);
- self::set_version('db_version','340007');
+ self::set_version('db_version','340007');
- return true;
+ return true;
- } // update_340007
+ } // update_340007
- /**
- * update_340008
- * This modifies the playlist table to handle the different types of objects that it needs to be able to
- * store, and tweaks how dynamic playlist stuff works
- */
- public static function update_340008() {
+ /**
+ * update_340008
+ * This modifies the playlist table to handle the different types of objects that it needs to be able to
+ * store, and tweaks how dynamic playlist stuff works
+ */
+ public static function update_340008() {
- $sql = "ALTER TABLE `playlist_data` CHANGE `song` `object_id` INT( 11 ) UNSIGNED NULL DEFAULT NULL";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `playlist_data` CHANGE `song` `object_id` INT( 11 ) UNSIGNED NULL DEFAULT NULL";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `playlist_data` CHANGE `dyn_song` `dynamic_song` TEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `playlist_data` CHANGE `dyn_song` `dynamic_song` TEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `playlist_data` ADD `object_type` VARCHAR( 32 ) NOT NULL DEFAULT 'song' AFTER `object_id`";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `playlist_data` ADD `object_type` VARCHAR( 32 ) NOT NULL DEFAULT 'song' AFTER `object_id`";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `playlist` ADD `genre` INT( 11 ) UNSIGNED NOT NULL AFTER `type`";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `playlist` ADD `genre` INT( 11 ) UNSIGNED NOT NULL AFTER `type`";
+ $db_results = Dba::write($sql);
- $sql = "DELETE FROM `preference` WHERE `name`='allow_downsample_playback'";
- $db_results = Dba::write($sql);
+ $sql = "DELETE FROM `preference` WHERE `name`='allow_downsample_playback'";
+ $db_results = Dba::write($sql);
- $sql = "UPDATE `preference` SET `description`='Transcode Bitrate' WHERE `name`='sample_rate'";
- $db_results = Dba::write($sql);
+ $sql = "UPDATE `preference` SET `description`='Transcode Bitrate' WHERE `name`='sample_rate'";
+ $db_results = Dba::write($sql);
- // Check for old tables and drop if found, seems like there was a glitch that caused them
- // not to get droped.. *shrug*
- $sql = "DROP TABLE IF EXISTS `preferences`";
- $db_results = Dba::write($sql);
+ // Check for old tables and drop if found, seems like there was a glitch that caused them
+ // not to get droped.. *shrug*
+ $sql = "DROP TABLE IF EXISTS `preferences`";
+ $db_results = Dba::write($sql);
- $sql = "DROP TABLE IF EXISTS `song_ext_data`";
- $db_results = Dba::write($sql);
+ $sql = "DROP TABLE IF EXISTS `song_ext_data`";
+ $db_results = Dba::write($sql);
- $sql = "DROP TABLE IF EXISTS `ratings`";
- $db_results = Dba::write($sql);
+ $sql = "DROP TABLE IF EXISTS `ratings`";
+ $db_results = Dba::write($sql);
- $sql = "SELECT `id` FROM `user`";
- $db_results = Dba::read($sql);
+ $sql = "SELECT `id` FROM `user`";
+ $db_results = Dba::read($sql);
- User::fix_preferences('-1');
+ User::fix_preferences('-1');
- while ($r = Dba::fetch_assoc($db_results)) {
- User::fix_preferences($r['id']);
- }
+ while ($r = Dba::fetch_assoc($db_results)) {
+ User::fix_preferences($r['id']);
+ }
- self::set_version('db_version','340008');
+ self::set_version('db_version','340008');
- return true;
+ return true;
- } // update_340008
+ } // update_340008
- /**
- * update_340009
- * This modifies the song table to handle pos fields
- */
- public static function update_340009() {
+ /**
+ * update_340009
+ * This modifies the song table to handle pos fields
+ */
+ public static function update_340009() {
- $sql = "ALTER TABLE `album` ADD `disk` smallint(5) UNSIGNED DEFAULT NULL";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `album` ADD `disk` smallint(5) UNSIGNED DEFAULT NULL";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `album` ADD INDEX (`disk`)";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `album` ADD INDEX (`disk`)";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `access_list` ADD `dns` VARCHAR( 255 ) NOT NULL AFTER `end`";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `access_list` ADD `dns` VARCHAR( 255 ) NOT NULL AFTER `end`";
+ $db_results = Dba::write($sql);
- $sql = "CREATE TABLE `artist_data` (" .
- "`artist_id` INT( 11 ) UNSIGNED NOT NULL ," .
- "`art` MEDIUMBLOB NOT NULL ," .
- "`art_mime` VARCHAR( 32 ) NOT NULL ," .
- "`thumb` BLOB NOT NULL ," .
- "`thumb_mime` VARCHAR( 32 ) NOT NULL ," .
- "`bio` TEXT NOT NULL , " .
- "UNIQUE (`artist_id`) ) ENGINE = MYISAM";
- $db_results = Dba::write($sql);
+ $sql = "CREATE TABLE `artist_data` (" .
+ "`artist_id` INT( 11 ) UNSIGNED NOT NULL ," .
+ "`art` MEDIUMBLOB NOT NULL ," .
+ "`art_mime` VARCHAR( 32 ) NOT NULL ," .
+ "`thumb` BLOB NOT NULL ," .
+ "`thumb_mime` VARCHAR( 32 ) NOT NULL ," .
+ "`bio` TEXT NOT NULL , " .
+ "UNIQUE (`artist_id`) ) ENGINE = MYISAM";
+ $db_results = Dba::write($sql);
- self::set_version('db_version','340009');
+ self::set_version('db_version','340009');
- return true;
+ return true;
- } // update_340009
+ } // update_340009
- /**
- * update_340010
- * Bunch of minor tweaks to the preference table
- */
- public static function update_340010() {
+ /**
+ * update_340010
+ * Bunch of minor tweaks to the preference table
+ */
+ public static function update_340010() {
- $sql = "UPDATE `preference` SET `catagory`='options' WHERE `name` LIKE 'localplay_%'";
- $db_results = Dba::write($sql);
+ $sql = "UPDATE `preference` SET `catagory`='options' WHERE `name` LIKE 'localplay_%'";
+ $db_results = Dba::write($sql);
- $sql = "DELETE FROM `preference` WHERE `name`='playlist_add'";
- $db_results = Dba::write($sql);
+ $sql = "DELETE FROM `preference` WHERE `name`='playlist_add'";
+ $db_results = Dba::write($sql);
- $sql = "UPDATE `preference` SET `catagory`='plugins' WHERE (`name` LIKE 'mystrands_%' OR `name` LIKE 'lastfm_%') AND `catagory`='options'";
- $db_results = Dba::write($sql);
+ $sql = "UPDATE `preference` SET `catagory`='plugins' WHERE (`name` LIKE 'mystrands_%' OR `name` LIKE 'lastfm_%') AND `catagory`='options'";
+ $db_results = Dba::write($sql);
- $sql = "UPDATE `preference` SET `value`='default' WHERE `name`='playlist_method'";
- $db_results = Dba::write($sql);
+ $sql = "UPDATE `preference` SET `value`='default' WHERE `name`='playlist_method'";
+ $db_results = Dba::write($sql);
- $sql = "UPDATE `preference` SET `description`='Localplay Config' WHERE `name`='localplay_level'";
- $db_results = Dba::write($sql);
+ $sql = "UPDATE `preference` SET `description`='Localplay Config' WHERE `name`='localplay_level'";
+ $db_results = Dba::write($sql);
- /* Fix every users preferences */
- $sql = "SELECT `id` FROM `user`";
- $db_results = Dba::read($sql);
+ /* Fix every users preferences */
+ $sql = "SELECT `id` FROM `user`";
+ $db_results = Dba::read($sql);
- User::fix_preferences('-1');
+ User::fix_preferences('-1');
- while ($r = Dba::fetch_assoc($db_results)) {
- User::fix_preferences($r['id']);
- } // while results
+ while ($r = Dba::fetch_assoc($db_results)) {
+ User::fix_preferences($r['id']);
+ } // while results
- self::set_version('db_version','340010');
+ self::set_version('db_version','340010');
- return true;
+ return true;
- } // update_340010
+ } // update_340010
- /**
- * update_340011
- * This updates the democratic play stuff so that can handle a little more complext mojo
- * It also adds yet another table to the db to handle the sessions for API access. Eventually
- * should combine all of the session tables, but I'll do that later
- */
- public static function update_340011() {
+ /**
+ * update_340011
+ * This updates the democratic play stuff so that can handle a little more complext mojo
+ * It also adds yet another table to the db to handle the sessions for API access. Eventually
+ * should combine all of the session tables, but I'll do that later
+ */
+ public static function update_340011() {
- // First add the new table for the new session stuff
- $sql = "CREATE TABLE `session_api` ( " .
- "`id` VARCHAR( 64 ) NOT NULL , " .
- "`user` INT( 11 ) UNSIGNED NOT NULL , " .
- "`agent` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL , " .
- "`level` INT( 11 ) UNSIGNED NOT NULL DEFAULT '0', " .
- "`expire` INT( 11 ) UNSIGNED NOT NULL , " .
- "`ip` INT( 11 ) UNSIGNED NULL , " .
- "PRIMARY KEY ( `id` ) " .
- ") ENGINE = MYISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci";
- $db_results = Dba::write($sql);
+ // First add the new table for the new session stuff
+ $sql = "CREATE TABLE `session_api` ( " .
+ "`id` VARCHAR( 64 ) NOT NULL , " .
+ "`user` INT( 11 ) UNSIGNED NOT NULL , " .
+ "`agent` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL , " .
+ "`level` INT( 11 ) UNSIGNED NOT NULL DEFAULT '0', " .
+ "`expire` INT( 11 ) UNSIGNED NOT NULL , " .
+ "`ip` INT( 11 ) UNSIGNED NULL , " .
+ "PRIMARY KEY ( `id` ) " .
+ ") ENGINE = MYISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci";
+ $db_results = Dba::write($sql);
- self::set_version('db_version','340011');
+ self::set_version('db_version','340011');
- return true;
+ return true;
- } // 340011
+ } // 340011
- /**
- * update_340012
- * This update adds in the democratic stuff, checks for some potentially screwed up indexes
- * and removes the timestamp from the playlist, and adds the field to the catalog for the upload dir
- */
- public static function update_340012() {
+ /**
+ * update_340012
+ * This update adds in the democratic stuff, checks for some potentially screwed up indexes
+ * and removes the timestamp from the playlist, and adds the field to the catalog for the upload dir
+ */
+ public static function update_340012() {
- $sql = "ALTER TABLE `catalog` ADD `add_path` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL AFTER `path`";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `catalog` ADD `add_path` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL AFTER `path`";
+ $db_results = Dba::write($sql);
- $sql = "CREATE TABLE `democratic` (`id` INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ," .
- "`name` VARCHAR( 64 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL ," .
- "`cooldown` TINYINT( 4 ) UNSIGNED NULL ," .
- "`level` TINYINT( 4 ) UNSIGNED NOT NULL DEFAULT '25'," .
- "`user` INT( 11 ) NOT NULL ," .
- "`primary` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT '0'" .
- ") ENGINE = MYISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci";
- $db_results = Dba::write($sql);
+ $sql = "CREATE TABLE `democratic` (`id` INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ," .
+ "`name` VARCHAR( 64 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL ," .
+ "`cooldown` TINYINT( 4 ) UNSIGNED NULL ," .
+ "`level` TINYINT( 4 ) UNSIGNED NOT NULL DEFAULT '25'," .
+ "`user` INT( 11 ) NOT NULL ," .
+ "`primary` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT '0'" .
+ ") ENGINE = MYISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `democratic` ADD INDEX (`primary`)";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `democratic` ADD INDEX (`primary`)";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `democratic` ADD INDEX (`level`)";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `democratic` ADD INDEX (`level`)";
+ $db_results = Dba::write($sql);
- self::set_version('db_version','340012');
+ self::set_version('db_version','340012');
- return true;
+ return true;
- } // update_340012
+ } // update_340012
- /**
- * update_340013
- * This update removes a whole bunch of preferences that are no longer
- * being used in any way, and changes the ACL XML-RPC to just RPC
- */
- public static function update_340013() {
+ /**
+ * update_340013
+ * This update removes a whole bunch of preferences that are no longer
+ * being used in any way, and changes the ACL XML-RPC to just RPC
+ */
+ public static function update_340013() {
- $sql = "DELETE FROM `preference` WHERE `name`='localplay_mpd_hostname' OR `name`='localplay_mpd_port' " .
- "OR `name`='direct_link' OR `name`='localplay_mpd_password' OR `name`='catalog_echo_count'";
- $db_results = Dba::write($sql);
+ $sql = "DELETE FROM `preference` WHERE `name`='localplay_mpd_hostname' OR `name`='localplay_mpd_port' " .
+ "OR `name`='direct_link' OR `name`='localplay_mpd_password' OR `name`='catalog_echo_count'";
+ $db_results = Dba::write($sql);
- $sql = "UPDATE `preference` SET `description`='Localplay Access' WHERE `name`='localplay_level'";
- $db_results = Dba::write($sql);
+ $sql = "UPDATE `preference` SET `description`='Localplay Access' WHERE `name`='localplay_level'";
+ $db_results = Dba::write($sql);
- $sql = "UPDATE `access_list` SET `type`='rpc' WHERE `type`='xml-rpc'";
- $db_results = Dba::write($sql);
+ $sql = "UPDATE `access_list` SET `type`='rpc' WHERE `type`='xml-rpc'";
+ $db_results = Dba::write($sql);
- $sql = "SELECT `id` FROM `user`";
- $db_results = Dba::read($sql);
+ $sql = "SELECT `id` FROM `user`";
+ $db_results = Dba::read($sql);
- User::fix_preferences('-1');
+ User::fix_preferences('-1');
- while ($r = Dba::fetch_assoc($db_results)) {
- User::fix_preferences($r['id']);
- } // while we're fixing the useres stuff
+ while ($r = Dba::fetch_assoc($db_results)) {
+ User::fix_preferences($r['id']);
+ } // while we're fixing the useres stuff
- self::set_version('db_version','340013');
+ self::set_version('db_version','340013');
- return true;
+ return true;
- } // update_340013
+ } // update_340013
- /**
- * update_340014
- * This update drops the session_api table that I added just two updates ago
- * it's been nice while it lasted but it's time to pack your stuff and GTFO
- * at the same time it updates the core session table to handle the additional
- * stuff we're going to ask it to do.
- */
- public static function update_340014() {
+ /**
+ * update_340014
+ * This update drops the session_api table that I added just two updates ago
+ * it's been nice while it lasted but it's time to pack your stuff and GTFO
+ * at the same time it updates the core session table to handle the additional
+ * stuff we're going to ask it to do.
+ */
+ public static function update_340014() {
- $sql = "DROP TABLE `session_api`";
- $db_results = Dba::write($sql);
+ $sql = "DROP TABLE `session_api`";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `session` CHANGE `type` `type` ENUM ('mysql','ldap','http','api','xml-rpc') NOT NULL";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `session` CHANGE `type` `type` ENUM ('mysql','ldap','http','api','xml-rpc') NOT NULL";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `session` ADD `agent` VARCHAR ( 255 ) NOT NULL AFTER `type`";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `session` ADD `agent` VARCHAR ( 255 ) NOT NULL AFTER `type`";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `session` ADD INDEX (`type`)";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `session` ADD INDEX (`type`)";
+ $db_results = Dba::write($sql);
- self::set_version('db_version','340014');
+ self::set_version('db_version','340014');
- return true;
+ return true;
- } // update_340014
+ } // update_340014
- /**
- * update_340015
- * This update tweaks the playlist table responding to complaints from usres
- * who say it doesn't work, unreproduceable. This also adds an index to the
- * album art table to try to make the random album art faster
- */
- public static function update_340015() {
+ /**
+ * update_340015
+ * This update tweaks the playlist table responding to complaints from usres
+ * who say it doesn't work, unreproduceable. This also adds an index to the
+ * album art table to try to make the random album art faster
+ */
+ public static function update_340015() {
- $sql = "ALTER TABLE `playlist` DROP `date`";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `playlist` DROP `date`";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `playlist` ADD `date` INT ( 11 ) UNSIGNED NOT NULL";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `playlist` ADD `date` INT ( 11 ) UNSIGNED NOT NULL";
+ $db_results = Dba::write($sql);
- // Pull all of the rating information
- $sql = "SELECT `id`,`rating` FROM `rating`";
- $db_results = Dba::read($sql);
+ // Pull all of the rating information
+ $sql = "SELECT `id`,`rating` FROM `rating`";
+ $db_results = Dba::read($sql);
- $results = array();
+ $results = array();
- while ($row = Dba::fetch_assoc($db_results)) {
- $results[] = $row;
- }
+ while ($row = Dba::fetch_assoc($db_results)) {
+ $results[] = $row;
+ }
- $sql = "ALTER TABLE `rating` DROP `rating`";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `rating` DROP `rating`";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `rating` ADD `rating` TINYINT ( 4 ) NOT NULL";
- $db_results = Dba::write($sql);
-
- foreach ($results as $row) {
- $rating = Dba::escape($row['rating']);
- $id = Dba::escape($row['id']);
- $sql = "UPDATE `rating` SET `rating`='$rating' WHERE `id`='$id'";
- $db_results = Dba::write($sql);
- }
-
- self::set_version('db_version','340015');
-
- return true;
-
- } // update_340015
-
- /**
- * update_340016
- * This adds in the base_playlist to the democratic table... should have
- * done this in the previous one but I screwed up... sigh
- */
- public static function update_340016() {
-
- $sql = "ALTER TABLE `democratic` ADD `base_playlist` INT ( 11 ) UNSIGNED NOT NULL";
- $db_results = Dba::write($sql);
-
- self::set_version('db_version','340016');
-
- return true;
-
- } // update_340016
-
- /**
- * update_340017
- * This finalizes the democratic table.
- * and fixes the charset crap
- */
- public static function update_340017() {
-
- $sql = "ALTER TABLE `democratic` ADD `base_playlist` INT( 11 ) UNSIGNED NOT NULL AFTER `name`";
- $db_results = Dba::write($sql);
-
- $sql = "ALTER TABLE `tmp_playlist` DROP `base_playlist`";
- $db_results = Dba::write($sql);
-
- $sql = "DELETE FROM `tmp_playlist` WHERE `session`='-1'";
- $db_results = Dba::write($sql);
-
- $sql = "TRUNCATE `democratic`";
- $db_results = Dba::write($sql);
-
- self::set_version('db_version','340017');
-
- return true;
-
- } // update_340017
-
- /**
- * update_340018
- * This attempts to correct the charset on your database, it does some checking
- * to make sure that if we do this it will actually will work. We will fail this update
- * if it would cause problems
- */
- public static function update_340018() {
-
- // MySQL translate real charset names into fancy smancy MySQL land names
- switch (strtoupper(Config::get('site_charset'))) {
- case 'CP1250':
- case 'WINDOWS-1250':
- case 'WINDOWS-1252':
- $target_charset = 'cp1250';
- $target_collation = 'cp1250_general_ci';
- break;
- case 'ISO-8859':
- case 'ISO-8859-2':
- $target_charset = 'latin2';
- $target_collation = 'latin2_general_ci';
- break;
- case 'ISO-8859-1':
- $target_charset = 'latin1';
- $target_charset = 'latin1_general_ci';
- break;
- case 'EUC-KR':
- $target_charset = 'euckr';
- $target_collation = 'euckr_korean_ci';
- break;
- case 'CP932':
- $target_charset = 'sjis';
- $target_collation = 'sjis_japanese_ci';
- break;
- case 'KOI8-U':
- $target_charset = 'koi8u';
- $target_collation = 'koi8u_general_ci';
- break;
- case 'KOI8-R':
- $target_charset = 'koi8r';
- $target_collation = 'koi8r_general_ci';
- break;
- case 'ISO-8859':
- $target_charset = 'latin2';
- $target_collation = 'latin2_general_ci';
- break;
- default;
- case 'UTF-8':
- $target_charset = 'utf8';
- $target_collation = 'utf8_unicode_ci';
- break;
- } // end mysql charset translation
-
- // Alter the charset for the entire database
- $sql = "ALTER DATABASE `" . Config::get('database_name') . "` DEFAULT CHARACTER SET $target_charset COLLATE $target_collation";
- $db_results = Dba::write($sql);
-
- $sql = "SHOW TABLES";
- $db_results = Dba::read($sql);
-
- // Go through the tables!
- while ($row = Dba::fetch_row($db_results)) {
- $sql = "DESCRIBE `" . $row['0'] . "`";
- $describe_results = Dba::read($sql);
-
- // Change the tables default charset and colliation
- $sql = "ALTER TABLE `" . $row['0'] . "` DEFAULT CHARACTER SET $target_charset COLLATE $target_collation";
- $alter_table = Dba::write($sql);
-
- // Itterate through the columns of the table
- while ($table = Dba::fetch_assoc($describe_results)) {
- if (
- (strpos($table['Type'], 'varchar') !== false) ||
- (strpos($table['Type'], 'enum') !== false) ||
- strpos($table['Table'],'text') !== false) {
- $sql = "ALTER TABLE `" . $row['0'] . "` MODIFY `" . $table['Field'] . "` " . $table['Type'] . " CHARACTER SET " . $target_charset;
- $charset_results = Dba::write($sql);
- if (!$charset_results) {
- debug_event('CHARSET','Unable to update the charset of ' . $table['Field'] . '.' . $table['Type'] . ' to ' . $target_charset,'3');
- } // if it fails
- } // if its a varchar
- } // end columns
-
- } // end tables
-
- self::set_version('db_version','340018');
-
- return true;
-
- } // update_340018
-
- /**
- * update_350001
- * This updates modifies the tag tables per codeunde1load's specs from his tag patch
- * it also adjusts the prefix fields so that we can use more prefixes
- */
- public static function update_350001() {
-
- $sql = "ALTER TABLE `tag_map` ADD `tag_id` INT ( 11 ) UNSIGNED NOT NULL AFTER `id`";
- $db_results = Dba::write($sql);
-
- $sql = "RENAME TABLE `tags` TO `tag`";
- $db_results = Dba::write($sql);
-
- $sql = "ALTER TABLE `tag` CHANGE `map_id` `id` INT ( 11 ) UNSIGNED NOT NULL auto_increment";
- $db_results = Dba::write($sql);
-
- $sql = "ALTER TABLE `album` CHANGE `prefix` `prefix` VARCHAR ( 32 ) NULL";
- $db_results = Dba::write($sql);
-
- $sql = "ALTER TABLE `artist` CHANGE `prefix` `prefix` VARCHAR ( 32 ) NULL";
- $db_results = Dba::write($sql);
-
- self::set_version('db_version','350001');
-
- return true;
-
- } // update_350001
-
- /**
- * update_350002
- * This update adds in the browse_cache table that we use to hold peoples cached browse results
- * rather then try to store everything in the session we split them out into one serilized array per
- * row, per person. A little slow this way when browsing, but faster when now browsing and more flexible
- */
- public static function update_350002() {
-
- $sql = "CREATE TABLE `tmp_browse` (`sid` varchar(128) NOT NULL,`data` longtext NOT NULL," .
- " UNIQUE KEY `sid` (`sid`)) ENGINE=MyISAM";
- $db_results = Dba::write($sql);
-
- $sql = "ALTER TABLE `tmp_browse` ADD INDEX ( `type` )";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `rating` ADD `rating` TINYINT ( 4 ) NOT NULL";
+ $db_results = Dba::write($sql);
+
+ foreach ($results as $row) {
+ $rating = Dba::escape($row['rating']);
+ $id = Dba::escape($row['id']);
+ $sql = "UPDATE `rating` SET `rating`='$rating' WHERE `id`='$id'";
+ $db_results = Dba::write($sql);
+ }
+
+ self::set_version('db_version','340015');
+
+ return true;
+
+ } // update_340015
+
+ /**
+ * update_340016
+ * This adds in the base_playlist to the democratic table... should have
+ * done this in the previous one but I screwed up... sigh
+ */
+ public static function update_340016() {
+
+ $sql = "ALTER TABLE `democratic` ADD `base_playlist` INT ( 11 ) UNSIGNED NOT NULL";
+ $db_results = Dba::write($sql);
+
+ self::set_version('db_version','340016');
+
+ return true;
+
+ } // update_340016
+
+ /**
+ * update_340017
+ * This finalizes the democratic table.
+ * and fixes the charset crap
+ */
+ public static function update_340017() {
+
+ $sql = "ALTER TABLE `democratic` ADD `base_playlist` INT( 11 ) UNSIGNED NOT NULL AFTER `name`";
+ $db_results = Dba::write($sql);
+
+ $sql = "ALTER TABLE `tmp_playlist` DROP `base_playlist`";
+ $db_results = Dba::write($sql);
+
+ $sql = "DELETE FROM `tmp_playlist` WHERE `session`='-1'";
+ $db_results = Dba::write($sql);
+
+ $sql = "TRUNCATE `democratic`";
+ $db_results = Dba::write($sql);
+
+ self::set_version('db_version','340017');
+
+ return true;
+
+ } // update_340017
+
+ /**
+ * update_340018
+ * This attempts to correct the charset on your database, it does some checking
+ * to make sure that if we do this it will actually will work. We will fail this update
+ * if it would cause problems
+ */
+ public static function update_340018() {
+
+ // MySQL translate real charset names into fancy smancy MySQL land names
+ switch (strtoupper(Config::get('site_charset'))) {
+ case 'CP1250':
+ case 'WINDOWS-1250':
+ case 'WINDOWS-1252':
+ $target_charset = 'cp1250';
+ $target_collation = 'cp1250_general_ci';
+ break;
+ case 'ISO-8859':
+ case 'ISO-8859-2':
+ $target_charset = 'latin2';
+ $target_collation = 'latin2_general_ci';
+ break;
+ case 'ISO-8859-1':
+ $target_charset = 'latin1';
+ $target_charset = 'latin1_general_ci';
+ break;
+ case 'EUC-KR':
+ $target_charset = 'euckr';
+ $target_collation = 'euckr_korean_ci';
+ break;
+ case 'CP932':
+ $target_charset = 'sjis';
+ $target_collation = 'sjis_japanese_ci';
+ break;
+ case 'KOI8-U':
+ $target_charset = 'koi8u';
+ $target_collation = 'koi8u_general_ci';
+ break;
+ case 'KOI8-R':
+ $target_charset = 'koi8r';
+ $target_collation = 'koi8r_general_ci';
+ break;
+ case 'ISO-8859':
+ $target_charset = 'latin2';
+ $target_collation = 'latin2_general_ci';
+ break;
+ default;
+ case 'UTF-8':
+ $target_charset = 'utf8';
+ $target_collation = 'utf8_unicode_ci';
+ break;
+ } // end mysql charset translation
+
+ // Alter the charset for the entire database
+ $sql = "ALTER DATABASE `" . Config::get('database_name') . "` DEFAULT CHARACTER SET $target_charset COLLATE $target_collation";
+ $db_results = Dba::write($sql);
+
+ $sql = "SHOW TABLES";
+ $db_results = Dba::read($sql);
+
+ // Go through the tables!
+ while ($row = Dba::fetch_row($db_results)) {
+ $sql = "DESCRIBE `" . $row['0'] . "`";
+ $describe_results = Dba::read($sql);
+
+ // Change the tables default charset and colliation
+ $sql = "ALTER TABLE `" . $row['0'] . "` DEFAULT CHARACTER SET $target_charset COLLATE $target_collation";
+ $alter_table = Dba::write($sql);
+
+ // Itterate through the columns of the table
+ while ($table = Dba::fetch_assoc($describe_results)) {
+ if (
+ (strpos($table['Type'], 'varchar') !== false) ||
+ (strpos($table['Type'], 'enum') !== false) ||
+ strpos($table['Table'],'text') !== false) {
+ $sql = "ALTER TABLE `" . $row['0'] . "` MODIFY `" . $table['Field'] . "` " . $table['Type'] . " CHARACTER SET " . $target_charset;
+ $charset_results = Dba::write($sql);
+ if (!$charset_results) {
+ debug_event('CHARSET','Unable to update the charset of ' . $table['Field'] . '.' . $table['Type'] . ' to ' . $target_charset,'3');
+ } // if it fails
+ } // if its a varchar
+ } // end columns
+
+ } // end tables
+
+ self::set_version('db_version','340018');
+
+ return true;
+
+ } // update_340018
+
+ /**
+ * update_350001
+ * This updates modifies the tag tables per codeunde1load's specs from his tag patch
+ * it also adjusts the prefix fields so that we can use more prefixes
+ */
+ public static function update_350001() {
+
+ $sql = "ALTER TABLE `tag_map` ADD `tag_id` INT ( 11 ) UNSIGNED NOT NULL AFTER `id`";
+ $db_results = Dba::write($sql);
+
+ $sql = "RENAME TABLE `tags` TO `tag`";
+ $db_results = Dba::write($sql);
+
+ $sql = "ALTER TABLE `tag` CHANGE `map_id` `id` INT ( 11 ) UNSIGNED NOT NULL auto_increment";
+ $db_results = Dba::write($sql);
+
+ $sql = "ALTER TABLE `album` CHANGE `prefix` `prefix` VARCHAR ( 32 ) NULL";
+ $db_results = Dba::write($sql);
+
+ $sql = "ALTER TABLE `artist` CHANGE `prefix` `prefix` VARCHAR ( 32 ) NULL";
+ $db_results = Dba::write($sql);
+
+ self::set_version('db_version','350001');
+
+ return true;
+
+ } // update_350001
+
+ /**
+ * update_350002
+ * This update adds in the browse_cache table that we use to hold peoples cached browse results
+ * rather then try to store everything in the session we split them out into one serilized array per
+ * row, per person. A little slow this way when browsing, but faster when now browsing and more flexible
+ */
+ public static function update_350002() {
+
+ $sql = "CREATE TABLE `tmp_browse` (`sid` varchar(128) NOT NULL,`data` longtext NOT NULL," .
+ " UNIQUE KEY `sid` (`sid`)) ENGINE=MyISAM";
+ $db_results = Dba::write($sql);
+
+ $sql = "ALTER TABLE `tmp_browse` ADD INDEX ( `type` )";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `song` DROP `genre`";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `song` DROP `genre`";
+ $db_results = Dba::write($sql);
- $sql = "CREATE TABLE `user_catalog` (`user` INT( 11 ) UNSIGNED NOT NULL ,`catalog` INT( 11 ) UNSIGNED NOT NULL ,`level` SMALLINT( 4 ) UNSIGNED NOT NULL DEFAULT '5', " .
- "INDEX ( `user` )) ENGINE = MYISAM";
- $db_results = Dba::write($sql);
+ $sql = "CREATE TABLE `user_catalog` (`user` INT( 11 ) UNSIGNED NOT NULL ,`catalog` INT( 11 ) UNSIGNED NOT NULL ,`level` SMALLINT( 4 ) UNSIGNED NOT NULL DEFAULT '5', " .
+ "INDEX ( `user` )) ENGINE = MYISAM";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `user_catalog` ADD INDEX ( `catalog` )";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `user_catalog` ADD INDEX ( `catalog` )";
+ $db_results = Dba::write($sql);
- self::set_version('db_version','350002');
+ self::set_version('db_version','350002');
- return true;
+ return true;
- } // update_350002
+ } // update_350002
- /**
- * update_350003
- * This update tweakes the tag tables a little bit more, we're going to simplify things for the first little bit and then
- * then if it all works out we will worry about making it complex again. One thing at a time people...
- */
- public static function update_350003() {
+ /**
+ * update_350003
+ * This update tweakes the tag tables a little bit more, we're going to simplify things for the first little bit and then
+ * then if it all works out we will worry about making it complex again. One thing at a time people...
+ */
+ public static function update_350003() {
- $sql = "ALTER TABLE `tag` DROP `order`";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `tag` DROP `order`";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `tag` DROP INDEX `order`";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `tag` DROP INDEX `order`";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `tag` ADD UNIQUE ( `name` )";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `tag` ADD UNIQUE ( `name` )";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `tag` CHANGE `name` `name` VARCHAR( 255 )";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `tag` CHANGE `name` `name` VARCHAR( 255 )";
+ $db_results = Dba::write($sql);
- // Make sure that they don't have any of the mystrands crap left
- $sql = "DELETE FROM `preference` WHERE `name`='mystrands_user' OR `name`='mystrands_pass'";
- $db_results = Dba::write($sql);
+ // Make sure that they don't have any of the mystrands crap left
+ $sql = "DELETE FROM `preference` WHERE `name`='mystrands_user' OR `name`='mystrands_pass'";
+ $db_results = Dba::write($sql);
- self::set_version('db_version','350003');
+ self::set_version('db_version','350003');
- return true;
+ return true;
- } // update_350003
+ } // update_350003
- /**
- * update_350004
- * This update makes some changes to the ACL table so that it can support IPv6 entries as well as some other feature
- * enhancements
- */
- public static function update_350004() {
+ /**
+ * update_350004
+ * This update makes some changes to the ACL table so that it can support IPv6 entries as well as some other feature
+ * enhancements
+ */
+ public static function update_350004() {
- $sql = "ALTER TABLE `session` CHANGE `ip` `ip` VARBINARY( 255 ) NULL";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `session` CHANGE `ip` `ip` VARBINARY( 255 ) NULL";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `session_stream` CHANGE `ip` `ip` VARBINARY( 255 ) NULL";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `session_stream` CHANGE `ip` `ip` VARBINARY( 255 ) NULL";
+ $db_results = Dba::write($sql);
- // Pull all of the IP history, this could take a while
- $sql = "SELECT * FROM `ip_history`";
- $db_results = Dba::read($sql);
+ // Pull all of the IP history, this could take a while
+ $sql = "SELECT * FROM `ip_history`";
+ $db_results = Dba::read($sql);
- $ip_history = array();
+ $ip_history = array();
- while ($row = Dba::fetch_assoc($db_results)) {
- $row['ip'] = long2ip($row['ip']);
- $ip_history[] = $row;
- }
-
- // Clear the table before we make the changes
- $sql = "TRUNCATE `ip_history`";
- $db_results = Dba::write($sql);
-
- $sql = "ALTER TABLE `ip_history` CHANGE `ip` `ip` VARBINARY( 255 ) NULL";
- $db_results = Dba::write($sql);
-
- $sql = "ALTER TABLE `ip_history` ADD `agent` VARCHAR ( 255 ) NULL AFTER `date`";
- $db_results = Dba::write($sql);
-
- // Reinsert the old rows
- foreach ($ip_history as $row) {
- $ip = Dba::escape(inet_pton($row['ip']));
- $sql = "INSERT INTO `ip_history` (`user`,`ip`,`date`,`agent`) " .
- "VALUES ('" . $row['user'] . "','" . $ip . "','" . $row['date'] . "',NULL)";
- $db_results = Dba::write($sql);
- }
-
- // First pull all of their current ACL's
- $sql = "SELECT * FROM `access_list`";
- $db_results = Dba::read($sql);
-
- $acl_information = array();
+ while ($row = Dba::fetch_assoc($db_results)) {
+ $row['ip'] = long2ip($row['ip']);
+ $ip_history[] = $row;
+ }
+
+ // Clear the table before we make the changes
+ $sql = "TRUNCATE `ip_history`";
+ $db_results = Dba::write($sql);
+
+ $sql = "ALTER TABLE `ip_history` CHANGE `ip` `ip` VARBINARY( 255 ) NULL";
+ $db_results = Dba::write($sql);
+
+ $sql = "ALTER TABLE `ip_history` ADD `agent` VARCHAR ( 255 ) NULL AFTER `date`";
+ $db_results = Dba::write($sql);
+
+ // Reinsert the old rows
+ foreach ($ip_history as $row) {
+ $ip = Dba::escape(inet_pton($row['ip']));
+ $sql = "INSERT INTO `ip_history` (`user`,`ip`,`date`,`agent`) " .
+ "VALUES ('" . $row['user'] . "','" . $ip . "','" . $row['date'] . "',NULL)";
+ $db_results = Dba::write($sql);
+ }
+
+ // First pull all of their current ACL's
+ $sql = "SELECT * FROM `access_list`";
+ $db_results = Dba::read($sql);
+
+ $acl_information = array();
- while ($row = Dba::fetch_assoc($db_results)) {
- $row['start'] = long2ip($row['start']);
- $row['end'] = long2ip($row['end']);
- $acl_information[] = $row;
- }
-
- $sql = "TRUNCATE `access_list`";
- $db_results = Dba::write($sql);
-
- // Make the changes to the database
- $sql = "ALTER TABLE `access_list` CHANGE `start` `start` VARBINARY( 255 ) NOT NULL";
- $db_results = Dba::write($sql);
-
- $sql = "ALTER TABLE `access_list` CHANGE `end` `end` VARBINARY( 255 ) NOT NULL";
- $db_results = Dba::write($sql);
-
- $sql = "ALTER TABLE `access_list` DROP `dns`";
- $db_results = Dba::write($sql);
-
- $sql = "ALTER TABLE `access_list` ADD `enabled` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT '1' AFTER `key`";
- $db_results = Dba::write($sql);
-
- // If we had nothing in there before add some base ALLOW ALL stuff as we're going
- // to start defaulting Access Control to On.
- if (!count($acl_information)) {
- $v6_start = Dba::escape(inet_pton('::'));
- $v6_end = Dba::escape(inet_pton('ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff'));
- $v4_start = Dba::escape(inet_pton('0.0.0.0'));
- $v4_end = Dba::escape(inet_pton('255.255.255.255'));
- $sql = "INSERT INTO `access_list` (`name`,`level`,`start`,`end`,`key`,`user`,`type`,`enabled`) " .
- "VALUES ('DEFAULTv4','75','$v4_start','$v4_end',NULL,'-1','interface','1')";
- $db_results = Dba::write($sql);
- $sql = "INSERT INTO `access_list` (`name`,`level`,`start`,`end`,`key`,`user`,`type`,`enabled`) " .
- "VALUES ('DEFAULTv4','75','$v4_start','$v4_end',NULL,'-1','stream','1')";
- $db_results = Dba::write($sql);
- $sql = "INSERT INTO `access_list` (`name`,`level`,`start`,`end`,`key`,`user`,`type`,`enabled`) " .
- "VALUES ('DEFAULTv6','75','$v6_start','$v6_end',NULL,'-1','interface','1')";
- $db_results = Dba::write($sql);
- $sql = "INSERT INTO `access_list` (`name`,`level`,`start`,`end`,`key`,`user`,`type`,`enabled`) " .
- "VALUES ('DEFAULTv6','75','$v6_start','$v6_end',NULL,'-1','stream','1')";
- $db_results = Dba::write($sql);
- } // Adding default information
-
- foreach ($acl_information as $row) {
- $row['start'] = Dba::escape(inet_pton($row['start']));
- $row['end'] = Dba::escape(inet_pton($row['end']));
- $row['key'] = Dba::escape($row['key']);
- $sql = "INSERT INTO `access_list` (`name`,`level`,`start`,`end`,`key`,`user`,`type`,`enabled`) " .
- "VALUES ('" . Dba::escape($row['name']) . "','" . intval($row['level']) .
- "','" . $row['start'] . "','" . $row['end'] . "','" . $row['key'] . "','" . intval($row['user']) . "','" .
- $row['type'] . "','1')";
- $db_results = Dba::write($sql);
- } // end foreach of existing rows
-
- self::set_version('db_version','350004');
-
- return true;
-
- } // update_350004
-
- /**
- * update_350005
- * This update adds the video table... *gasp* no you didn't <head shake>
- */
- public static function update_350005() {
-
- $sql = " CREATE TABLE `video` (" .
- "`id` INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ," .
- "`file` VARCHAR( 255 ) NOT NULL , " .
- "`catalog` INT( 11 ) UNSIGNED NOT NULL ," .
- "`title` VARCHAR( 255 ) NOT NULL ," .
- "`video_codec` VARCHAR( 255 ) NOT NULL ," .
- "`audio_codec` VARCHAR( 255 ) NOT NULL ," .
- "`resolution_x` MEDIUMINT UNSIGNED NOT NULL ," .
- "`resolution_y` MEDIUMINT UNSIGNED NOT NULL ," .
- "`time` INT( 11 ) UNSIGNED NOT NULL ," .
- "`size` BIGINT UNSIGNED NOT NULL," .
- "`mime` VARCHAR( 255 ) NOT NULL," .
- "`enabled` TINYINT( 1) NOT NULL DEFAULT '1'" .
- ") ENGINE = MYISAM ";
- $db_results = Dba::write($sql);
-
- $sql = "ALTER TABLE `access_list` ADD INDEX ( `enabled` )";
- $db_results = Dba::write($sql);
-
- $sql = "ALTER TABLE `video` ADD INDEX ( `file` )";
- $db_results = Dba::write($sql);
-
- $sql = "ALTER TABLE `video` ADD INDEX ( `enabled` )";
- $db_results = Dba::write($sql);
-
- $sql = "ALTER TABLE `video` ADD INDEX ( `title` )";
- $db_results = Dba::write($sql);
-
- self::set_version('db_version','350005');
-
- return true;
-
- } // update_350005
-
- /**
- * update_350006
- * This update inserts the Lyrics pref table...
- */
- public static function update_350006() {
-
- $sql = "INSERT INTO `preference` VALUES (69,'show_lyrics','0','Show Lyrics',0,'boolean','interface')";
- $db_results = Dba::write($sql);
-
- $sql = "INSERT INTO `user_preference` VALUES (1,69,'0')";
- $db_results = Dba::write($sql);
-
- $sql = "SELECT `id` FROM `user`";
- $db_results = Dba::read($sql);
-
- User::fix_preferences('-1');
-
- while ($r = Dba::fetch_assoc($db_results)) {
- User::fix_preferences($r['id']);
- } // while we're fixing the useres stuff
-
- self::set_version('db_version','350006');
-
- return true;
-
- } // update_350006
-
- /**
- * update_350007
- * This update adds in the random rules tables, and also increases the size of the blobs
- * on the album and artist data. Also add track to tmp_playlist_data
- */
- public static function update_350007() {
+ while ($row = Dba::fetch_assoc($db_results)) {
+ $row['start'] = long2ip($row['start']);
+ $row['end'] = long2ip($row['end']);
+ $acl_information[] = $row;
+ }
+
+ $sql = "TRUNCATE `access_list`";
+ $db_results = Dba::write($sql);
+
+ // Make the changes to the database
+ $sql = "ALTER TABLE `access_list` CHANGE `start` `start` VARBINARY( 255 ) NOT NULL";
+ $db_results = Dba::write($sql);
+
+ $sql = "ALTER TABLE `access_list` CHANGE `end` `end` VARBINARY( 255 ) NOT NULL";
+ $db_results = Dba::write($sql);
+
+ $sql = "ALTER TABLE `access_list` DROP `dns`";
+ $db_results = Dba::write($sql);
+
+ $sql = "ALTER TABLE `access_list` ADD `enabled` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT '1' AFTER `key`";
+ $db_results = Dba::write($sql);
+
+ // If we had nothing in there before add some base ALLOW ALL stuff as we're going
+ // to start defaulting Access Control to On.
+ if (!count($acl_information)) {
+ $v6_start = Dba::escape(inet_pton('::'));
+ $v6_end = Dba::escape(inet_pton('ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff'));
+ $v4_start = Dba::escape(inet_pton('0.0.0.0'));
+ $v4_end = Dba::escape(inet_pton('255.255.255.255'));
+ $sql = "INSERT INTO `access_list` (`name`,`level`,`start`,`end`,`key`,`user`,`type`,`enabled`) " .
+ "VALUES ('DEFAULTv4','75','$v4_start','$v4_end',NULL,'-1','interface','1')";
+ $db_results = Dba::write($sql);
+ $sql = "INSERT INTO `access_list` (`name`,`level`,`start`,`end`,`key`,`user`,`type`,`enabled`) " .
+ "VALUES ('DEFAULTv4','75','$v4_start','$v4_end',NULL,'-1','stream','1')";
+ $db_results = Dba::write($sql);
+ $sql = "INSERT INTO `access_list` (`name`,`level`,`start`,`end`,`key`,`user`,`type`,`enabled`) " .
+ "VALUES ('DEFAULTv6','75','$v6_start','$v6_end',NULL,'-1','interface','1')";
+ $db_results = Dba::write($sql);
+ $sql = "INSERT INTO `access_list` (`name`,`level`,`start`,`end`,`key`,`user`,`type`,`enabled`) " .
+ "VALUES ('DEFAULTv6','75','$v6_start','$v6_end',NULL,'-1','stream','1')";
+ $db_results = Dba::write($sql);
+ } // Adding default information
+
+ foreach ($acl_information as $row) {
+ $row['start'] = Dba::escape(inet_pton($row['start']));
+ $row['end'] = Dba::escape(inet_pton($row['end']));
+ $row['key'] = Dba::escape($row['key']);
+ $sql = "INSERT INTO `access_list` (`name`,`level`,`start`,`end`,`key`,`user`,`type`,`enabled`) " .
+ "VALUES ('" . Dba::escape($row['name']) . "','" . intval($row['level']) .
+ "','" . $row['start'] . "','" . $row['end'] . "','" . $row['key'] . "','" . intval($row['user']) . "','" .
+ $row['type'] . "','1')";
+ $db_results = Dba::write($sql);
+ } // end foreach of existing rows
+
+ self::set_version('db_version','350004');
+
+ return true;
+
+ } // update_350004
+
+ /**
+ * update_350005
+ * This update adds the video table... *gasp* no you didn't <head shake>
+ */
+ public static function update_350005() {
+
+ $sql = " CREATE TABLE `video` (" .
+ "`id` INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ," .
+ "`file` VARCHAR( 255 ) NOT NULL , " .
+ "`catalog` INT( 11 ) UNSIGNED NOT NULL ," .
+ "`title` VARCHAR( 255 ) NOT NULL ," .
+ "`video_codec` VARCHAR( 255 ) NOT NULL ," .
+ "`audio_codec` VARCHAR( 255 ) NOT NULL ," .
+ "`resolution_x` MEDIUMINT UNSIGNED NOT NULL ," .
+ "`resolution_y` MEDIUMINT UNSIGNED NOT NULL ," .
+ "`time` INT( 11 ) UNSIGNED NOT NULL ," .
+ "`size` BIGINT UNSIGNED NOT NULL," .
+ "`mime` VARCHAR( 255 ) NOT NULL," .
+ "`enabled` TINYINT( 1) NOT NULL DEFAULT '1'" .
+ ") ENGINE = MYISAM ";
+ $db_results = Dba::write($sql);
+
+ $sql = "ALTER TABLE `access_list` ADD INDEX ( `enabled` )";
+ $db_results = Dba::write($sql);
+
+ $sql = "ALTER TABLE `video` ADD INDEX ( `file` )";
+ $db_results = Dba::write($sql);
+
+ $sql = "ALTER TABLE `video` ADD INDEX ( `enabled` )";
+ $db_results = Dba::write($sql);
+
+ $sql = "ALTER TABLE `video` ADD INDEX ( `title` )";
+ $db_results = Dba::write($sql);
+
+ self::set_version('db_version','350005');
+
+ return true;
+
+ } // update_350005
+
+ /**
+ * update_350006
+ * This update inserts the Lyrics pref table...
+ */
+ public static function update_350006() {
+
+ $sql = "INSERT INTO `preference` VALUES (69,'show_lyrics','0','Show Lyrics',0,'boolean','interface')";
+ $db_results = Dba::write($sql);
+
+ $sql = "INSERT INTO `user_preference` VALUES (1,69,'0')";
+ $db_results = Dba::write($sql);
+
+ $sql = "SELECT `id` FROM `user`";
+ $db_results = Dba::read($sql);
+
+ User::fix_preferences('-1');
+
+ while ($r = Dba::fetch_assoc($db_results)) {
+ User::fix_preferences($r['id']);
+ } // while we're fixing the useres stuff
+
+ self::set_version('db_version','350006');
+
+ return true;
+
+ } // update_350006
+
+ /**
+ * update_350007
+ * This update adds in the random rules tables, and also increases the size of the blobs
+ * on the album and artist data. Also add track to tmp_playlist_data
+ */
+ public static function update_350007() {
- // We need to clear the thumbs as they will need to be re-generated
- $sql = "UPDATE `album_data` SET `thumb`=NULL,`thumb_mime`=NULL";
- $db_results = Dba::write($sql);
+ // We need to clear the thumbs as they will need to be re-generated
+ $sql = "UPDATE `album_data` SET `thumb`=NULL,`thumb_mime`=NULL";
+ $db_results = Dba::write($sql);
- $sql = "UPDATE `artist_data` SET `thumb`=NULL,`thumb_mime`=NULL";
- $db_results = Dba::write($sql);
+ $sql = "UPDATE `artist_data` SET `thumb`=NULL,`thumb_mime`=NULL";
+ $db_results = Dba::write($sql);
- // Change the db thumb sizes
- $sql = "ALTER TABLE `album_data` CHANGE `thumb` `thumb` MEDIUMBLOB NULL";
- $db_results = Dba::write($sql);
+ // Change the db thumb sizes
+ $sql = "ALTER TABLE `album_data` CHANGE `thumb` `thumb` MEDIUMBLOB NULL";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `artist_data` CHANGE `thumb` `thumb` MEDIUMBLOB NULL";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `artist_data` CHANGE `thumb` `thumb` MEDIUMBLOB NULL";
+ $db_results = Dba::write($sql);
- // Remove dead column
- $sql = "ALTER TABLE `playlist_data` DROP `dynamic_song`";
- $db_results = Dba::write($sql);
+ // Remove dead column
+ $sql = "ALTER TABLE `playlist_data` DROP `dynamic_song`";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `playlist` DROP `genre`";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `playlist` DROP `genre`";
+ $db_results = Dba::write($sql);
- // Add track item to tmp_playlist_data so we can order this stuff manually
- $sql = "ALTER TABLE `tmp_playlist_data` ADD `track` INT ( 11 ) UNSIGNED NULL";
- $db_results = Dba::write($sql);
+ // Add track item to tmp_playlist_data so we can order this stuff manually
+ $sql = "ALTER TABLE `tmp_playlist_data` ADD `track` INT ( 11 ) UNSIGNED NULL";
+ $db_results = Dba::write($sql);
- $sql = "DROP TABLE `genre`";
- $db_results = Dba::write($sql);
+ $sql = "DROP TABLE `genre`";
+ $db_results = Dba::write($sql);
- // Clean up the catalog and add last_clean to it
- $sql = "ALTER TABLE `catalog` ADD `last_clean` INT ( 11 ) UNSIGNED NULL AFTER `last_update`";
- $db_results = Dba::write($sql);
+ // Clean up the catalog and add last_clean to it
+ $sql = "ALTER TABLE `catalog` ADD `last_clean` INT ( 11 ) UNSIGNED NULL AFTER `last_update`";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `catalog` DROP `add_path`";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `catalog` DROP `add_path`";
+ $db_results = Dba::write($sql);
- $sql = "CREATE TABLE `dynamic_playlist` (" .
- "`id` INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ," .
- "`name` VARCHAR( 255 ) NOT NULL ," .
- "`user` INT( 11 ) NOT NULL ," .
- "`date` INT( 11 ) UNSIGNED NOT NULL ," .
- "`type` VARCHAR( 128 ) NOT NULL" .
- ") ENGINE = MYISAM ";
- $db_results = Dba::write($sql);
+ $sql = "CREATE TABLE `dynamic_playlist` (" .
+ "`id` INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ," .
+ "`name` VARCHAR( 255 ) NOT NULL ," .
+ "`user` INT( 11 ) NOT NULL ," .
+ "`date` INT( 11 ) UNSIGNED NOT NULL ," .
+ "`type` VARCHAR( 128 ) NOT NULL" .
+ ") ENGINE = MYISAM ";
+ $db_results = Dba::write($sql);
- $sql = "CREATE TABLE `dynamic_playlist_data` (" .
- "`id` INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ," .
- "`dynamic_id` INT( 11 ) UNSIGNED NOT NULL ," .
- "`field` VARCHAR( 255 ) NOT NULL ," .
- "`internal_operator` VARCHAR( 64 ) NOT NULL ," .
- "`external_operator` VARCHAR( 64 ) NOT NULL ," .
- "`value` VARCHAR( 255 ) NOT NULL" .
- ") ENGINE = MYISAM";
- $db_results = Dba::write($sql);
+ $sql = "CREATE TABLE `dynamic_playlist_data` (" .
+ "`id` INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ," .
+ "`dynamic_id` INT( 11 ) UNSIGNED NOT NULL ," .
+ "`field` VARCHAR( 255 ) NOT NULL ," .
+ "`internal_operator` VARCHAR( 64 ) NOT NULL ," .
+ "`external_operator` VARCHAR( 64 ) NOT NULL ," .
+ "`value` VARCHAR( 255 ) NOT NULL" .
+ ") ENGINE = MYISAM";
+ $db_results = Dba::write($sql);
- self::set_version('db_version','350007');
+ self::set_version('db_version','350007');
- return true;
+ return true;
- } // update_350007
+ } // update_350007
- /**
- * update_350008
- * Change song_id references to be object so they are a little more general
- * add a type to now playing table so that we can handle different playing information
- */
- public static function update_350008() {
+ /**
+ * update_350008
+ * Change song_id references to be object so they are a little more general
+ * add a type to now playing table so that we can handle different playing information
+ */
+ public static function update_350008() {
- $sql = "ALTER TABLE `now_playing` CHANGE `song_id` `object_id` INT( 11 ) UNSIGNED NOT NULL";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `now_playing` CHANGE `song_id` `object_id` INT( 11 ) UNSIGNED NOT NULL";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `now_playing` ADD `object_type` VARCHAR ( 255 ) NOT NULL AFTER `object_id`";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `now_playing` ADD `object_type` VARCHAR ( 255 ) NOT NULL AFTER `object_id`";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `now_playing` ADD INDEX ( `expire` )";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `now_playing` ADD INDEX ( `expire` )";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `video` ADD `addition_time` INT( 11 ) UNSIGNED NOT NULL AFTER `mime`";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `video` ADD `addition_time` INT( 11 ) UNSIGNED NOT NULL AFTER `mime`";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `video` ADD `update_time` INT( 11 ) UNSIGNED NULL AFTER `addition_time`";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `video` ADD `update_time` INT( 11 ) UNSIGNED NULL AFTER `addition_time`";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `video` ADD INDEX (`addition_time`)";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `video` ADD INDEX (`addition_time`)";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `video` ADD INDEX (`update_time`)";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `video` ADD INDEX (`update_time`)";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `artist_data` ADD INDEX ( `art_mime` )";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `artist_data` ADD INDEX ( `art_mime` )";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `album_data` ADD INDEX ( `art_mime` )";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `album_data` ADD INDEX ( `art_mime` )";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `tmp_browse` ADD `type` VARCHAR ( 255 ) NOT NULL AFTER `sid`";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `tmp_browse` ADD `type` VARCHAR ( 255 ) NOT NULL AFTER `sid`";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `tmp_browse` ADD INDEX (`type)";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `tmp_browse` ADD INDEX (`type)";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `song` DROP `hash`";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `song` DROP `hash`";
+ $db_results = Dba::write($sql);
- self::set_version('db_version','350008');
+ self::set_version('db_version','350008');
- } // update_350008
+ } // update_350008
- /**
- * update_360001
- * This adds the MB UUIDs to the different tables as well as some additional cleanup
- */
- public static function update_360001() {
+ /**
+ * update_360001
+ * This adds the MB UUIDs to the different tables as well as some additional cleanup
+ */
+ public static function update_360001() {
- $sql = "ALTER TABLE `album` ADD `mbid` CHAR ( 36 ) AFTER `prefix`";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `album` ADD `mbid` CHAR ( 36 ) AFTER `prefix`";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `artist` ADD `mbid` CHAR ( 36 ) AFTER `prefix`";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `artist` ADD `mbid` CHAR ( 36 ) AFTER `prefix`";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `song` ADD `mbid` CHAR ( 36 ) AFTER `track`";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `song` ADD `mbid` CHAR ( 36 ) AFTER `track`";
+ $db_results = Dba::write($sql);
- // Remove any RIO related information from the database as the plugin has been removed
- $sql = "DELETE FROM `update_info` WHERE `key` LIKE 'Plugin_Ri%'";
- $db_results = Dba::write($sql);
+ // Remove any RIO related information from the database as the plugin has been removed
+ $sql = "DELETE FROM `update_info` WHERE `key` LIKE 'Plugin_Ri%'";
+ $db_results = Dba::write($sql);
- $sql = "DELETE FROM `preference` WHERE `name` LIKE 'rio_%'";
- $db_results = Dba::write($sql);
+ $sql = "DELETE FROM `preference` WHERE `name` LIKE 'rio_%'";
+ $db_results = Dba::write($sql);
- $sql = "SELECT `id` FROM `user`";
- $db_results = Dba::read($sql);
+ $sql = "SELECT `id` FROM `user`";
+ $db_results = Dba::read($sql);
- User::fix_preferences('-1');
+ User::fix_preferences('-1');
- while ($r = Dba::fetch_assoc($db_results)) {
- User::fix_preferences($r['id']);
- } // while we're fixing the useres stuff
+ while ($r = Dba::fetch_assoc($db_results)) {
+ User::fix_preferences($r['id']);
+ } // while we're fixing the useres stuff
- self::set_version('db_version','360001');
+ self::set_version('db_version','360001');
- } // update_360001
+ } // update_360001
- /**
- * update_360002
- * This update makes changes to the cataloging to accomodate the new method for syncing between
- * Ampache instances, could be adapted to sync with whatever for "full" catalog
- */
- public static function update_360002() {
+ /**
+ * update_360002
+ * This update makes changes to the cataloging to accomodate the new method for syncing between
+ * Ampache instances, could be adapted to sync with whatever for "full" catalog
+ */
+ public static function update_360002() {
- // Drop the key from catalog and ACL
- $sql = "ALTER TABLE `catalog` DROP `key`";
- $db_results = Dba::write($sql);
+ // Drop the key from catalog and ACL
+ $sql = "ALTER TABLE `catalog` DROP `key`";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `access_list` DROP `key`";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `access_list` DROP `key`";
+ $db_results = Dba::write($sql);
- // Add in Username / Password for catalog - to be used for remote catalogs
- $sql = "ALTER TABLE `catalog` ADD `remote_username` VARCHAR ( 255 ) AFTER `catalog_type`";
- $db_results = Dba::write($sql);
+ // Add in Username / Password for catalog - to be used for remote catalogs
+ $sql = "ALTER TABLE `catalog` ADD `remote_username` VARCHAR ( 255 ) AFTER `catalog_type`";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `catalog` ADD `remote_password` VARCHAR ( 255 ) AFTER `remote_username`";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `catalog` ADD `remote_password` VARCHAR ( 255 ) AFTER `remote_username`";
+ $db_results = Dba::write($sql);
- // Adjust the Filename field in song, make it gi-normous. If someone has anything close to
- // this file length, they seriously need to reconsider what they are doing.
- $sql = "ALTER TABLE `song` CHANGE `file` `file` VARCHAR ( 4096 )";
- $db_results = Dba::write($sql);
+ // Adjust the Filename field in song, make it gi-normous. If someone has anything close to
+ // this file length, they seriously need to reconsider what they are doing.
+ $sql = "ALTER TABLE `song` CHANGE `file` `file` VARCHAR ( 4096 )";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `video` CHANGE `file` `file` VARCHAR ( 4096 )";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `video` CHANGE `file` `file` VARCHAR ( 4096 )";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `live_stream` CHANGE `url` `url` VARCHAR ( 4096 )";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `live_stream` CHANGE `url` `url` VARCHAR ( 4096 )";
+ $db_results = Dba::write($sql);
- // Index the Artist, Album, and Song tables to prepare for Fulltext searches.
- $sql = "ALTER TABLE `artist` ADD FULLTEXT(`name`)";
- $db_results = Dba::write($sql);
+ // Index the Artist, Album, and Song tables to prepare for Fulltext searches.
+ $sql = "ALTER TABLE `artist` ADD FULLTEXT(`name`)";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `album` ADD FULLTEXT(`name`)";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `album` ADD FULLTEXT(`name`)";
+ $db_results = Dba::write($sql);
- $sql = "ALTER TABLE `song` ADD FULLTEXT(`title`)";
- $db_results = Dba::write($sql);
+ $sql = "ALTER TABLE `song` ADD FULLTEXT(`title`)";
+ $db_results = Dba::write($sql);
- // Now add in the min_object_count preference and the random_method
- $sql = "INSERT INTO `preference` (`name`,`value`,`description`,`level`,`type`,`catagory`) " .
- "VALUES ('bandwidth','50','Bandwidth','5','integer','interface')";
- $db_results = Dba::write($sql);
+ // Now add in the min_object_count preference and the random_method
+ $sql = "INSERT INTO `preference` (`name`,`value`,`description`,`level`,`type`,`catagory`) " .
+ "VALUES ('bandwidth','50','Bandwidth','5','integer','interface')";
+ $db_results = Dba::write($sql);
- $sql = "INSERT INTO `preference` (`name`,`value`,`description`,`level`,`type`,`catagory`) " .
- "VALUES ('features','50','Features','5','integer','interface')";
- $db_results = Dba::write($sql);
+ $sql = "INSERT INTO `preference` (`name`,`value`,`description`,`level`,`type`,`catagory`) " .
+ "VALUES ('features','50','Features','5','integer','interface')";
+ $db_results = Dba::write($sql);
- /* Fix every users preferences */
- $sql = "SELECT `id` FROM `user`";
- $db_results = Dba::read($sql);
+ /* Fix every users preferences */
+ $sql = "SELECT `id` FROM `user`";
+ $db_results = Dba::read($sql);
- User::fix_preferences('-1');
+ User::fix_preferences('-1');
- while ($r = Dba::fetch_assoc($db_results)) {
- User::fix_preferences($r['id']);
- } // while results
+ while ($r = Dba::fetch_assoc($db_results)) {
+ User::fix_preferences($r['id']);
+ } // while results
- self::set_version('db_version','360002');
-
- } // update_360002
-
- /**
- * update_360003
- * This update moves the image data to its own table.
- */
- public static function update_360003() {
- $sql = "CREATE TABLE `image` (" .
- "`id` int(11) unsigned NOT NULL auto_increment," .
- "`image` mediumblob NOT NULL," .
- "`mime` varchar(64) NOT NULL," .
- "`size` varchar(64) NOT NULL," .
- "`object_type` varchar(64) NOT NULL," .
- "`object_id` int(11) unsigned NOT NULL," .
- "PRIMARY KEY (`id`)," .
- "KEY `object_type` (`object_type`)," .
- "KEY `object_id` (`object_id`)" .
- ") ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci";
- $db_results = Dba::write($sql);
-
- foreach (array('album', 'artist') as $type) {
- $sql = "SELECT `" . $type . "_id` AS `object_id`, " .
- "`art`, `art_mime` FROM `" . $type .
- "_data` WHERE `art` IS NOT NULL";
- $db_results = Dba::read($sql);
- while ($row = Dba::fetch_assoc($db_results)) {
- $sql = "INSERT INTO `image` " .
- "(`image`, `mime`, `size`, " .
- "`object_type`, `object_id`) " .
- "VALUES('" . Dba::escape($row['art']) .
- "', '" . $row['art_mime'] .
- "', 'original', '" . $type . "', '" .
- $row['object_id'] . "')";
- $db_other_results = Dba::write($sql);
- }
- $sql = "DROP TABLE `" . $type . "_data`";
- $db_results = Dba::write($sql);
- }
-
- self::set_version('db_version','360003');
-
- } // update_360003
+ self::set_version('db_version','360002');
+
+ } // update_360002
+
+ /**
+ * update_360003
+ * This update moves the image data to its own table.
+ */
+ public static function update_360003() {
+ $sql = "CREATE TABLE `image` (" .
+ "`id` int(11) unsigned NOT NULL auto_increment," .
+ "`image` mediumblob NOT NULL," .
+ "`mime` varchar(64) NOT NULL," .
+ "`size` varchar(64) NOT NULL," .
+ "`object_type` varchar(64) NOT NULL," .
+ "`object_id` int(11) unsigned NOT NULL," .
+ "PRIMARY KEY (`id`)," .
+ "KEY `object_type` (`object_type`)," .
+ "KEY `object_id` (`object_id`)" .
+ ") ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci";
+ $db_results = Dba::write($sql);
+
+ foreach (array('album', 'artist') as $type) {
+ $sql = "SELECT `" . $type . "_id` AS `object_id`, " .
+ "`art`, `art_mime` FROM `" . $type .
+ "_data` WHERE `art` IS NOT NULL";
+ $db_results = Dba::read($sql);
+ while ($row = Dba::fetch_assoc($db_results)) {
+ $sql = "INSERT INTO `image` " .
+ "(`image`, `mime`, `size`, " .
+ "`object_type`, `object_id`) " .
+ "VALUES('" . Dba::escape($row['art']) .
+ "', '" . $row['art_mime'] .
+ "', 'original', '" . $type . "', '" .
+ $row['object_id'] . "')";
+ $db_other_results = Dba::write($sql);
+ }
+ $sql = "DROP TABLE `" . $type . "_data`";
+ $db_results = Dba::write($sql);
+ }
+
+ self::set_version('db_version','360003');
+
+ } // update_360003
/**
- * update_360004
- * This update creates an index on the rating table.
- */
- public static function update_360004() {
- $sql = "CREATE UNIQUE INDEX `unique_rating` ON `rating` (`user`, `object_type`, `object_id`)";
- $db_results = Dba::write($sql);
-
- self::set_version('db_version','360004');
- } // update_360004
-
- /**
- * update_360005
- * This changes the tmp_browse table around.
- */
- public static function update_360005() {
- $sql = "DROP TABLE `tmp_browse`";
- $db_results = Dba::write($sql);
-
- $sql = "CREATE TABLE `tmp_browse` (" .
- "`id` int(13) NOT NULL auto_increment," .
- "`sid` varchar(128) character set utf8 NOT NULL default ''," .
- "`data` longtext NOT NULL," .
- "`object_data` longtext," .
- "PRIMARY KEY (`sid`,`id`)" .
- ") ENGINE=MyISAM DEFAULT CHARSET=utf8";
- $db_results = Dba::write($sql);
-
- self::set_version('db_version','360005');
- } // update_360005
-
- /**
- * update_360006
- * This adds the table for newsearch/dynamic playlists
- */
- public static function update_360006() {
- $sql = "CREATE TABLE `search` (
- `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
- `user` int(11) NOT NULL,
- `type` enum('private','public') CHARACTER SET utf8 DEFAULT NULL,
- `rules` mediumtext NOT NULL,
- `name` varchar(255) CHARACTER SET utf8 DEFAULT NULL,
- `logic_operator` varchar(3) CHARACTER SET utf8 DEFAULT NULL,
- PRIMARY KEY (`id`)
- ) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8";
- $db_results = Dba::write($sql);
-
- self::set_version('db_version','360006');
- }
-
- /**
- * update_360007
- * This fixes the session table
- */
- public static function update_360007() {
- $sql = "ALTER TABLE `session` MODIFY `type` ENUM ('mysql','ldap','http','api','xml-rpc','local') NOT NULL";
- $db_results = Dba::write($sql);
- self::set_version('db_version','360007');
- }
-
- /**
- * update_360008
- * Fix bug that caused the remote_username/password fields to not be created
- */
- public static function update_360008() {
-
- $remote_username = false;
- $remote_password = false;
-
- $sql = "DESCRIBE `catalog`";
- $db_results = Dba::read($sql);
-
- while ($row = Dba::fetch_assoc($db_results)) {
- if ($row['Field'] == 'remote_username') {
- $remote_username = true;
- }
- if ($row['Field'] == 'remote_password') {
- $remote_password = true;
- }
- } // end while
-
- if (!$remote_username) {
- // Add in Username / Password for catalog - to be used for remote catalogs
- $sql = "ALTER TABLE `catalog` ADD `remote_username` VARCHAR ( 255 ) AFTER `catalog_type`";
- $db_results = Dba::write($sql);
- }
- if (!$remote_password) {
- $sql = "ALTER TABLE `catalog` ADD `remote_password` VARCHAR ( 255 ) AFTER `remote_username`";
- $db_results = Dba::write($sql);
- }
-
- self::set_version('db_version','360008');
-
- } // update_360008
-
-
- /**
- * update_360009
- * The main session table was already updated to use varchar(64) for the ID,
- * tmp_playlist needs the same change
- */
- public static function update_360009() {
- $sql = "ALTER TABLE `tmp_playlist` CHANGE `session` `session` VARCHAR(64)";
- $db_results = Dba::write($sql);
-
- self::set_version('db_version','360009');
- }
-
- /**
- * update_360010
- * MBz NGS means collaborations have more than one MBID (the ones
- * belonging to the underlying artists). We need a bigger column.
- */
- public static function update_360010() {
- $sql = 'ALTER TABLE `artist` CHANGE `mbid` `mbid` VARCHAR(1369)';
- $db_results = Dba::write($sql);
-
- self::set_version('db_version', '360010');
- }
-
- /**
- * update_380011
- * We need a place to store actual playlist data for downloadable
- * playlist files.
- */
- public static function update_360011() {
- $sql = 'CREATE TABLE `stream_playlist` (' .
- '`id` int(11) unsigned NOT NULL AUTO_INCREMENT,' .
- '`sid` varchar(64) NOT NULL,' .
- '`url` text NOT NULL,' .
- '`info_url` text DEFAULT NULL,' .
- '`image_url` text DEFAULT NULL,' .
- '`title` varchar(255) DEFAULT NULL,' .
- '`author` varchar(255) DEFAULT NULL,' .
- '`album` varchar(255) DEFAULT NULL,' .
- '`type` varchar(255) DEFAULT NULL,' .
- '`time` smallint(5) DEFAULT NULL,' .
- 'PRIMARY KEY (`id`), KEY `sid` (`sid`))';
- $db_results = Dba::write($sql);
- self::set_version('db_version', '360011');
- }
+ * update_360004
+ * This update creates an index on the rating table.
+ */
+ public static function update_360004() {
+ $sql = "CREATE UNIQUE INDEX `unique_rating` ON `rating` (`user`, `object_type`, `object_id`)";
+ $db_results = Dba::write($sql);
+
+ self::set_version('db_version','360004');
+ } // update_360004
+
+ /**
+ * update_360005
+ * This changes the tmp_browse table around.
+ */
+ public static function update_360005() {
+ $sql = "DROP TABLE `tmp_browse`";
+ $db_results = Dba::write($sql);
+
+ $sql = "CREATE TABLE `tmp_browse` (" .
+ "`id` int(13) NOT NULL auto_increment," .
+ "`sid` varchar(128) character set utf8 NOT NULL default ''," .
+ "`data` longtext NOT NULL," .
+ "`object_data` longtext," .
+ "PRIMARY KEY (`sid`,`id`)" .
+ ") ENGINE=MyISAM DEFAULT CHARSET=utf8";
+ $db_results = Dba::write($sql);
+
+ self::set_version('db_version','360005');
+ } // update_360005
+
+ /**
+ * update_360006
+ * This adds the table for newsearch/dynamic playlists
+ */
+ public static function update_360006() {
+ $sql = "CREATE TABLE `search` (
+ `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
+ `user` int(11) NOT NULL,
+ `type` enum('private','public') CHARACTER SET utf8 DEFAULT NULL,
+ `rules` mediumtext NOT NULL,
+ `name` varchar(255) CHARACTER SET utf8 DEFAULT NULL,
+ `logic_operator` varchar(3) CHARACTER SET utf8 DEFAULT NULL,
+ PRIMARY KEY (`id`)
+ ) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8";
+ $db_results = Dba::write($sql);
+
+ self::set_version('db_version','360006');
+ }
+
+ /**
+ * update_360007
+ * This fixes the session table
+ */
+ public static function update_360007() {
+ $sql = "ALTER TABLE `session` MODIFY `type` ENUM ('mysql','ldap','http','api','xml-rpc','local') NOT NULL";
+ $db_results = Dba::write($sql);
+ self::set_version('db_version','360007');
+ }
+
+ /**
+ * update_360008
+ * Fix bug that caused the remote_username/password fields to not be created
+ */
+ public static function update_360008() {
+
+ $remote_username = false;
+ $remote_password = false;
+
+ $sql = "DESCRIBE `catalog`";
+ $db_results = Dba::read($sql);
+
+ while ($row = Dba::fetch_assoc($db_results)) {
+ if ($row['Field'] == 'remote_username') {
+ $remote_username = true;
+ }
+ if ($row['Field'] == 'remote_password') {
+ $remote_password = true;
+ }
+ } // end while
+
+ if (!$remote_username) {
+ // Add in Username / Password for catalog - to be used for remote catalogs
+ $sql = "ALTER TABLE `catalog` ADD `remote_username` VARCHAR ( 255 ) AFTER `catalog_type`";
+ $db_results = Dba::write($sql);
+ }
+ if (!$remote_password) {
+ $sql = "ALTER TABLE `catalog` ADD `remote_password` VARCHAR ( 255 ) AFTER `remote_username`";
+ $db_results = Dba::write($sql);
+ }
+
+ self::set_version('db_version','360008');
+
+ } // update_360008
+
+
+ /**
+ * update_360009
+ * The main session table was already updated to use varchar(64) for the ID,
+ * tmp_playlist needs the same change
+ */
+ public static function update_360009() {
+ $sql = "ALTER TABLE `tmp_playlist` CHANGE `session` `session` VARCHAR(64)";
+ $db_results = Dba::write($sql);
+
+ self::set_version('db_version','360009');
+ }
+
+ /**
+ * update_360010
+ * MBz NGS means collaborations have more than one MBID (the ones
+ * belonging to the underlying artists). We need a bigger column.
+ */
+ public static function update_360010() {
+ $sql = 'ALTER TABLE `artist` CHANGE `mbid` `mbid` VARCHAR(1369)';
+ $db_results = Dba::write($sql);
+
+ self::set_version('db_version', '360010');
+ }
+
+ /**
+ * update_380011
+ * We need a place to store actual playlist data for downloadable
+ * playlist files.
+ */
+ public static function update_360011() {
+ $sql = 'CREATE TABLE `stream_playlist` (' .
+ '`id` int(11) unsigned NOT NULL AUTO_INCREMENT,' .
+ '`sid` varchar(64) NOT NULL,' .
+ '`url` text NOT NULL,' .
+ '`info_url` text DEFAULT NULL,' .
+ '`image_url` text DEFAULT NULL,' .
+ '`title` varchar(255) DEFAULT NULL,' .
+ '`author` varchar(255) DEFAULT NULL,' .
+ '`album` varchar(255) DEFAULT NULL,' .
+ '`type` varchar(255) DEFAULT NULL,' .
+ '`time` smallint(5) DEFAULT NULL,' .
+ 'PRIMARY KEY (`id`), KEY `sid` (`sid`))';
+ $db_results = Dba::write($sql);
+ self::set_version('db_version', '360011');
+ }
} // end update class
?>