egroupware/setup/upgradetables_mysql.inc.php
2000-11-13 01:36:53 +00:00

396 lines
22 KiB
PHP

<?php
/**************************************************************************\
* phpGroupWare - Setup *
* http://www.phpgroupware.org *
* -------------------------------------------- *
* This program is free software; you can redistribute it and/or modify it *
* under the terms of the GNU General Public License as published by the *
* Free Software Foundation; either version 2 of the License, or (at your *
* option) any later version. *
\**************************************************************************/
/* $Id$ */
function update_version_table($tableschanged = True){
global $currentver, $phpgw_info, $db, $tablechanges;
if ($tableschanged == True){$tablechanges = True;}
$db->query("update applications set app_version='".$currentver."' where (app_name='admin' or app_name='filemanager' or app_name='addressbook' or app_name='todo' or app_name='calendar' or app_name='email' or app_name='nntp' or app_name='cron_apps')");
}
function v7122000to8032000(){
global $currentver, $db;
if ($currentver == "7122000"){
echo " <tr bgcolor=\"e6e6e6\">\n";
// echo " <td>Upgrade from 7122000 to 8032000 is completed.</td>\n";
echo " <td>Upgrading from 7122000 is not yet ready.<br> You can do this manually if you choose, otherwise dump your tables and start over.</td>\n";
echo " </tr>\n";
$currentver = "8032000";
}
}
function v8032000to8072000(){
global $currentver, $db;
if ($currentver == "8032000"){
echo " <tr bgcolor=\"e6e6e6\">\n";
// echo " <td>Upgrade from 8032000 to 8072000 is completed.</td>\n";
echo " <td>Upgrading from 8032000 is not yet ready.<br> You can do this manually if you choose, otherwise dump your tables and start over.</td>\n";
echo " </tr>\n";
$currentver = "8072000";
}
}
function v8072000to8212000(){
global $currentver, $db;
if ($currentver == "8072000"){
$sql = "CREATE TABLE applications ("
."app_name varchar(25) NOT NULL,"
."app_title varchar(50),"
."app_enabled int,"
."UNIQUE app_name (app_name)"
.")";
$db->query($sql);
$db->query("insert into applications (app_name, app_title, app_enabled) values ('admin', 'Administration', 1)");
$db->query("insert into applications (app_name, app_title, app_enabled) values ('tts', 'Trouble Ticket System', 1)");
$db->query("insert into applications (app_name, app_title, app_enabled) values ('inv', 'Inventory', 1)");
$db->query("insert into applications (app_name, app_title, app_enabled) values ('chat', 'Chat', 1)");
$db->query("insert into applications (app_name, app_title, app_enabled) values ('headlines', 'Headlines', 1)");
$db->query("insert into applications (app_name, app_title, app_enabled) values ('filemanager', 'File manager', 1)");
$db->query("insert into applications (app_name, app_title, app_enabled) values ('ftp', 'FTP', 1)");
$db->query("insert into applications (app_name, app_title, app_enabled) values ('addressbook', 'Address Book', 1)");
$db->query("insert into applications (app_name, app_title, app_enabled) values ('todo', 'ToDo List', 1)");
$db->query("insert into applications (app_name, app_title, app_enabled) values ('calendar', 'Calendar', 1)");
$db->query("insert into applications (app_name, app_title, app_enabled) values ('email', 'Email', 1)");
$db->query("insert into applications (app_name, app_title, app_enabled) values ('nntp', 'NNTP', 1)");
$db->query("insert into applications (app_name, app_title, app_enabled) values ('bookmarks', 'Bookmarks', 0)");
$db->query("insert into applications (app_name, app_title, app_enabled) values ('cron_apps', 'cron_apps', 0)");
$db->query("insert into applications (app_name, app_title, app_enabled) values ('napster', 'Napster', 0)");
echo " <tr bgcolor=\"e6e6e6\">\n";
echo " <td>Upgrade from 8072000 to 8212000 is completed.</td>\n";
echo " </tr>\n";
$currentver = "8212000";
}
}
function v8212000to9052000(){
global $currentver, $db;
if ($currentver == "8212000"){
$db->query("alter table chat_channel change name name varchar(10) not null");
$db->query("alter table chat_messages change channel channel char(20) not null");
$db->query("alter table chat_messages change loginid loginid varchar(20) not null");
$db->query("alter table chat_currentin change loginid loginid varchar(25) not null");
$db->query("alter table chat_currentin change channel channel char(20)");
$db->query("alter table chat_privatechat change user1 user1 varchar(25) not null");
$db->query("alter table chat_privatechat change user2 user2 varchar(25) not null");
echo " <tr bgcolor=\"e6e6e6\">\n";
echo " <td>Upgrade from 8212000 to 9052000 is completed.</td>\n";
echo " </tr>\n";
$currentver = "9052000";
}
}
function v9052000to9072000(){
global $currentver, $db;
if ($currentver == "9052000"){
echo " <tr bgcolor=\"e6e6e6\">\n";
// echo " <td>Upgrade from 9052000 to 9072000 is completed.</td>\n";
echo " <td>Upgrading from 9052000 is not available.<br> I dont believe there were any changes, so this should be fine.</td>\n";
echo " </tr>\n";
$currentver = "9072000";
}
}
function v9072000to0_9_1(){
global $currentver, $phpgw_info, $db;
if ($currentver == "9072000"){
$db->query("alter table accounts change con account_id int(11) DEFAULT '0' NOT NULL auto_increment");
$db->query("alter table accounts change loginid account_lid varchar(25) NOT NULL");
$db->query("alter table accounts change passwd account_pwd varchar(32) NOT NULL");
$db->query("alter table accounts change firstname account_firstname varchar(50)");
$db->query("alter table accounts change lastname account_lastname varchar(50)");
$db->query("alter table accounts change permissions account_permissions text");
$db->query("alter table accounts change groups account_groups varchar(30)");
$db->query("alter table accounts change lastlogin account_lastlogin int(11)");
$db->query("alter table accounts change lastloginfrom account_lastloginfrom varchar(255)");
$db->query("alter table accounts change lastpasswd_change account_lastpwd_change int(11)");
$db->query("alter table accounts change status account_status enum('A','L') DEFAULT 'A' NOT NULL");
$db->query("alter table applications add app_order int");
$db->query("alter table applications add app_tables varchar(255)");
$db->query("alter table applications add app_version varchar(20) not null default '0.0'");
$db->query("alter table preferences change owner preference_owner varchar(20)");
$db->query("alter table preferences change name preference_name varchar(50)");
$db->query("alter table preferences change value preference_value varchar(50)");
$db->query("alter table preferences add preference_appname varchar(50) default ''");
$db->query("alter table sessions change sessionid session_id varchar(255) NOT NULL");
$db->query("alter table sessions change loginid session_lid varchar(20)");
$db->query("alter table sessions change passwd session_pwd varchar(255)");
$db->query("alter table sessions change ip session_ip varchar(255)");
$db->query("alter table sessions change logintime session_logintime int(11)");
$db->query("alter table sessions change dla session_dla int(11)");
$db->query("alter table todo change con todo_id int(11)");
$db->query("alter table todo change owner todo_owner varchar(25)");
$db->query("alter table todo change access todo_access varchar(255)");
$db->query("alter table todo change des todo_des text");
$db->query("alter table todo change pri todo_pri int(11)");
$db->query("alter table todo change status todo_status int(11)");
$db->query("alter table todo change datecreated todo_datecreated int(11)");
$db->query("alter table todo change datedue todo_datedue int(11)");
// The addressbook section is missing.
$db->query("update applications set app_order=1,app_tables=NULL where app_name='admin'");
$db->query("update applications set app_order=2,app_tables=NULL where app_name='tts'");
$db->query("update applications set app_order=3,app_tables=NULL where app_name='inv'");
$db->query("update applications set app_order=4,app_tables=NULL where app_name='chat'");
$db->query("update applications set app_order=5,app_tables='news_sites,news_headlines,users_headlines' where app_name='headlines'");
$db->query("update applications set app_order=6,app_tables=NULL where app_name='filemanager'");
$db->query("update applications set app_order=7,app_tables='addressbook' where app_name='addressbook'");
$db->query("update applications set app_order=8,app_tables='todo' where app_name='todo'");
$db->query("update applications set app_order=9,app_tables='webcal_entry,webcal_entry_users,webcal_entry_groups,webcal_repeats' where app_name='calendar'");
$db->query("update applications set app_order=10,app_tables=NULL where app_name='email'");
$db->query("update applications set app_order=11,app_tables='newsgroups,users_newsgroups' where app_name='nntp'");
$db->query("update applications set app_order=0,app_tables=NULL where app_name='cron_apps'");
$sql = "CREATE TABLE config ("
."config_name varchar(25) NOT NULL,"
."config_value varchar(100),"
."UNIQUE config_name (config_name)"
.")";
$db->query($sql);
$db->query("insert into config (config_name, config_value) values ('default_tplset', 'default')");
$db->query("insert into config (config_name, config_value) values ('temp_dir', '/path/to/tmp')");
$db->query("insert into config (config_name, config_value) values ('files_dir', '/path/to/dir/phpgroupware/files')");
$db->query("insert into config (config_name, config_value) values ('encryptkey', 'change this phrase 2 something else'");
$db->query("insert into config (config_name, config_value) values ('site_title', 'phpGroupWare')");
$db->query("insert into config (config_name, config_value) values ('hostname', 'local.machine.name')");
$db->query("insert into config (config_name, config_value) values ('webserver_url', '/phpgroupware')");
$db->query("insert into config (config_name, config_value) values ('auth_type', 'sql')");
$db->query("insert into config (config_name, config_value) values ('ldap_host', 'localhost')");
$db->query("insert into config (config_name, config_value) values ('ldap_context', 'o=phpGroupWare')");
$db->query("insert into config (config_name, config_value) values ('usecookies', 'True')");
$db->query("insert into config (config_name, config_value) values ('mail_server', 'localhost')");
$db->query("insert into config (config_name, config_value) values ('mail_server_type', 'imap')");
$db->query("insert into config (config_name, config_value) values ('imap_server_type', 'Cyrus')");
$db->query("insert into config (config_name, config_value) values ('mail_suffix', 'yourdomain.com')");
$db->query("insert into config (config_name, config_value) values ('mail_login_type', 'standard')");
$db->query("insert into config (config_name, config_value) values ('smtp_server', 'localhost')");
$db->query("insert into config (config_name, config_value) values ('smtp_port', '25')");
$db->query("insert into config (config_name, config_value) values ('nntp_server', 'yournewsserver.com')");
$db->query("insert into config (config_name, config_value) values ('nntp_port', '119')");
$db->query("insert into config (config_name, config_value) values ('nntp_sender', 'complaints@yourserver.com')");
$db->query("insert into config (config_name, config_value) values ('nntp_organization', 'phpGroupWare')");
$db->query("insert into config (config_name, config_value) values ('nntp_admin', 'admin@yourserver.com')");
$db->query("insert into config (config_name, config_value) values ('nntp_login_username', '')");
$db->query("insert into config (config_name, config_value) values ('nntp_login_password', '')");
$db->query("insert into config (config_name, config_value) values ('default_ftp_server', 'localhost')");
$db->query("insert into config (config_name, config_value) values ('httpproxy_server', '')");
$db->query("insert into config (config_name, config_value) values ('httpproxy_port', '')");
$db->query("insert into config (config_name, config_value) values ('showpoweredbyon', 'bottom')");
$db->query("insert into config (config_name, config_value) values ('checkfornewversion', 'False')");
echo " <tr bgcolor=\"e6e6e6\">\n";
echo " <td>Upgrade from 9072000 to 0.9.1 is completed.</td>\n";
echo " </tr>\n";
$currentver = "0.9.1";
update_version_table();
}
}
function v0_9_1to0_9_2(){
global $currentver, $phpgw_info, $db;
if ($currentver == "0.9.1"){
$db->query("alter table access_log change lo lo varchar(255)");
$db->query("alter table addressbook change ab_id ab_id int(11) NOT NULL auto_increment");
$db->query("alter table addressbook add ab_company_id int(10) unsigned");
$db->query("alter table addressbook add ab_title varchar(60)");
$db->query("alter table addressbook add ab_address2 varchar(60)");
$sql = "CREATE TABLE customers (
company_id int(10) unsigned NOT NULL auto_increment,
company_name varchar(255),
website varchar(80),
ftpsite varchar(80),
industry_type varchar(50),
status varchar(30),
software varchar(40),
lastjobnum int(10) unsigned,
lastjobfinished date,
busrelationship varchar(30),
notes text,
PRIMARY KEY (company_id)
);";
$db->query($sql);
$db->query("update lang set lang='da' where lang='dk'");
$db->query("update lang set lang='ko' where lang='kr'");
$db->query("update preferences set preference_name='da' where preference_name='dk'");
$db->query("update preferences set preference_name='ko' where preference_name='kr'");
//install weather support
$db->query("insert into applications (app_name, app_title, app_enabled, app_order, app_tables, app_version) values ('weather', 'Weather', 1, 12, NULL, '".$phpgw_info["server"]["version"]."')");
$db->query("INSERT INTO lang (message_id, app_name, lang, content) VALUES( 'weather','Weather','en','weather')");
echo " <tr bgcolor=\"e6e6e6\">\n";
echo " <td>Upgrade from 0.9.1 to 0.9.2 is completed.</td>\n";
echo " </tr>\n";
$currentver = "0.9.2";
update_version_table();
}
}
function v0_9_2to0_9_3update_owner($table,$field){
global $db;
$db->query("select distinct($field) from $table");
if ($db->num_rows()) {
while($db->next_record()) {
$owner[count($owner)] = $db->f($field);
}
for($i=0;$i<count($owner);$i++) {
$db->query("select account_id from accounts where account_lid='".$owner[$i]."'");
$db->next_record();
$db->query("update $table set $field=".$db->f("account_id")." where $field='".$owner[$i]."'");
}
}
$db->query("alter table $table change $field $field int(11) NOT NULL");
}
function v0_9_2to0_9_3(){
global $currentver, $phpgw_info, $db;
// The 0.9.3pre1 is only temp until release
if ($currentver == "0.9.2" || $currentver == "0.9.3pre1" || $currentver == "0.9.3pre2" || $currentver == "0.9.3pre3" || $currentver == "0.9.3pre4" || $currentver == "0.9.3pre5" || $currentver == "0.9.3pre6" || $currentver == "0.9.3pre7" || $currentver = "0.9.3pre8") {
if ($currentver == "0.9.2" || $currentver == "0.9.3pre1") {
v0_9_2to0_9_3update_owner("addressbook","ab_owner");
v0_9_2to0_9_3update_owner("todo","todo_owner");
v0_9_2to0_9_3update_owner("webcal_entry","cal_create_by");
v0_9_2to0_9_3update_owner("webcal_entry_user","cal_login");
$currentver = "0.9.3pre2";
update_version_table();
}
if ($currentver == "0.9.3pre2") {
$db->query("select owner, newsgroup from users_newsgroups");
if($db->num_rows()) {
while($db->next_record()) {
$owner[count($owner)] = $db->f("owner");
$newsgroup[count($newsgroup)] = $db->f("newsgroup");
}
for($i=0;$i<count($owner);$i++) {
$db->query("insert into preferences (preference_owner,preference_name,"
."preference_value,preference_appname) values ('".$owner[$i]."','".$newsgroup[$i]."','True',"
."'nntp')");
}
$db->query("drop table users_newsgroups");
$db->query("update applications set app_tables='newsgroups' where app_name='nntp'");
}
$currentver = "0.9.3pre3";
update_version_table();
}
if ($currentver == "0.9.3pre3") {
$db->query("alter table todo add todo_id_parent int(11) DEFAULT '0' NOT NULL");
$currentver = "0.9.3pre4";
update_version_table();
}
if ($currentver == "0.9.3pre4") {
$db->query("alter table config change config_name config_name varchar(255) NOT NULL");
$currentver = "0.9.3pre5";
update_version_table();
}
if ($currentver == "0.9.3pre5") {
$db->query("CREATE TABLE categories (
cat_id int(9) DEFAULT '0' NOT NULL auto_increment,
account_id int(11) DEFAULT '0' NOT NULL,
app_name varchar(25) NOT NULL,
cat_name varchar(150) NOT NULL,
cat_description text NOT NULL,
PRIMARY KEY (cat_id))"
);
$currentver = "0.9.3pre6";
update_version_table();
}
if ($currentver == "0.9.3pre6") {
$db->query("alter table addressbook add ab_url varchar(255)");
$db->query("insert into applications (app_name, app_title, app_enabled, app_order, app_tables, app_version) values ('transy', 'Translation Management', 0, 13, NULL, '".$phpgw_info["server"]["version"]."')");
$currentver = "0.9.3pre7";
update_version_table();
}
// What happened to 0.9.3pre7 :) (jengo)
if ($currentver == "0.9.3pre8") {
$db->query("drop table users_headlines");
$currentver = "0.9.3pre9";
update_version_table();
}
if ($currentver == "0.9.3pre9") {
$sql = "CREATE TABLE news_msg (
con int(11) NOT NULL,
msg int(11) NOT NULL,
uid varchar(255) DEFAULT '',
udate int(11) DEFAULT 0,
path varchar(255) DEFAULT '',
fromadd varchar(255) DEFAULT '',
toadd varchar(255) DEFAULT '',
ccadd varchar(255) DEFAULT '',
bccadd varchar(255) DEFAULT '',
reply_to varchar(255) DEFAULT '',
sender varchar(255) DEFAULT '',
return_path varchar(255) DEFAULT '',
subject varchar(255) DEFAULT '',
message_id varchar(255) DEFAULT '',
reference varchar(255) DEFAULT '',
in_reply_to varchar(255) DEFAULT '',
follow_up_to varchar(255) DEFAULT '',
nntp_posting_host varchar(255) DEFAULT '',
nntp_posting_date varchar(255) DEFAULT '',
x_complaints_to varchar(255) DEFAULT '',
x_trace varchar(255) DEFAULT '',
x_abuse_info varchar(255) DEFAULT '',
x_mailer varchar(255) DEFAULT '',
organization varchar(255) DEFAULT '',
content_type varchar(255) DEFAULT '',
content_description varchar(255) DEFAULT '',
content_transfer_encoding varchar(255) DEFAULT '',
mime_version varchar(255) DEFAULT '',
msgsize int(11) DEFAULT 0,
msglines int(11) DEFAULT 0,
body longtext NOT NULL,
primary key(con,msg)
)";
$db->query($sql);
$currentver = "0.9.3pre10";
update_version_table();
}
echo " <tr bgcolor=\"e6e6e6\">\n";
echo " <td>Upgrade from 0.9.2 to $currentver is completed.</td>\n";
echo " </tr>\n";
}
}
echo "<table border=\"0\" align=\"center\">\n";
echo " <tr bgcolor=\"486591\">\n";
echo " <td colspan=\"2\"><font color=\"fefefe\">&nbsp;<b>Table Upgrades</b></font></td>\n";
echo " </tr>\n";
v7122000to8032000();
v8032000to8072000();
v8072000to8212000();
v8212000to9052000();
v9052000to9072000();
v9072000to0_9_1();
v0_9_1to0_9_2();
v0_9_2to0_9_3();
if (!$tablechanges == True){
echo " <tr bgcolor=\"e6e6e6\">\n";
echo " <td>No table changes were needed. The script only updated your version setting.</td>\n";
echo " </tr>\n";
}
echo "</table>\n";
?>