=== Curios2 upgrade ===
Beschrijving van de upgrade-procedures. Bevat alle stappen/door te voeren wijzigingen op de bestaande productie code naar de overgang van de nieuwe release.
==== Kopie productie omgeving naar dev. omgeving ====
* Dump databases:
* curios
* curios_tracking
* Code (inclusief items & sections):
* curios
* curios2
==== Kopie & aanpassingen dokeos module op productie omgeving ====
* Dokeos module kopieren:
{{{
$ cd /home/clarodev/minerva/main
$ cp -pr curios curios2
}}}
* Config aanpassen:
{{{
$curios_server="curios"; // name of the curios production server
$curios_server_hostname="curios2.ugent.be";
$curios_db_server_hostname = "curios2.ugent.be";
$curios_dbLogin="GEBRUIKER";
$curios_dbPass="WACHTWOORD";
$curios_key = md5(KEY);
$curios_link= "http://$curios_server_hostname/curios2/code/main/remote_login.php";
}}}
* $curios_link curios.inc.php aanpassen, fix #227:
{{{
$curios_link= "http://$curios_server_hostname/curios2/code/main/remote_login.php";
}}}
> Note: curios_key werd niet aangepast omdat deze in de code naar de dev. omgeving ook niet werd aangepast.
==== Aanpassingen op dev. omgeving ====
* curios/index.php: LDAP checks in comment
{{{
//$ldap_id=find_user(array("login" => "$_POST[login]",
"authSource" => "ldap", "origin" => "curios"));
/*if(!$ldap_id && !$curios_id)
{
$ok=login_with_ldap($login, $password);
//echo "ok for login_with_ldap: $ok
";
}
if($ldap_id && !$ok)
{
$ok=login_with_ldap($login, $password, $ldap_id);
//echo "ok for login_with_ldap with ldap_id:
$ok
";
}*/
}}}
* curios/testtool.api.php: Hard coded user om in te loggen zonder Minerva/Dokeos
{{{
function curios_login($login, $password)
{
global $sql,$curiosdb,$secret_key;
if($login=="GEBRUIKER")
return set_logged_in_user(GEBRUIKER_ID);
}}}
* curios2/code/inc/config.inc.php: Database host/user/pass aanpassen
{{{
default:
$host="157.193.39.217";$db="curios";$sql_user="root";$pass="";break;
}}}
* curios2/code/inc/global.inc.php: Database host/user/pass aanpassen
{{{
case "157.193.39.217":
$host='157.193.39.217';$db="curios";$login="root";$pass=""; break;
}}}
* Permissies www-data op:
* curios2/items
* curios2/sections
* curios2/temp
* 7z path aanpassen in database:
{{{
UPDATE `curios`.`system_settings` SET `zip_executable` = '/var/www/curios2/3rd_party/p7zip_4.42/bin/7z' WHERE `system_settings`.`id` =1
}}}
* Path naar Curios1 aanpassen in database:
{{{
UPDATE `curios`.`system_paths` SET `path` = 'http://curios2.ugent.be/curios/' WHERE CONVERT( `system_paths`.`name` USING utf8 ) = 'curios1'
}}}
----
=== Database upgrade ===
Onderstaand de verschillen op de database structure productie versus development:
==== Wijzigingen op bestaande tabellen ====
* examinee_record:
{{{
ALTER TABLE `examinee_record` CHANGE COLUMN `score` `score` float default NULL; # was varchar(10) default NULL
ALTER TABLE `examinee_record` DROP COLUMN `response_id`; # was bigint(20) NOT NULL auto_increment
ALTER TABLE `examinee_record` ADD COLUMN `max_score` float default NULL;
ALTER TABLE `examinee_record` DROP INDEX `task_log_id`; # was INDEX (`task_log_id`)
ALTER TABLE `examinee_record` DROP PRIMARY KEY; # was (`response_id`)
ALTER TABLE `examinee_record` ADD PRIMARY KEY (`task_log_id`,`item_id`,`varname`);
}}}
{{{
ALTER IGNORE TABLE `examinee_record` ADD UNIQUE INDEX(`task_log_id`,`item_id`,`varname`);
ALTER TABLE `examinee_record` DROP INDEX `task_log_id`; # was UNIQUE (`task_log_id`,`item_id`,`varname`)
}}}
* examinee_total_score:
{{{
ALTER TABLE `examinee_total_score` CHANGE COLUMN `max_score` `max_score` varchar(10) NOT NULL default ''; # was varchar(10) NOT NULL
}}}
* item_editable:
{{{
ALTER TABLE `item_editable` CHANGE COLUMN `title` `title` varchar(200) NOT NULL; # was varchar(50) NOT NULL default ''
ALTER TABLE `item_editable` ADD COLUMN `secret_key` varchar(32) NOT NULL default '';
}}}
* item_section:
{{{
ALTER TABLE `item_section` CHANGE COLUMN `linkrefid` `linkrefid` bigint(20) NOT NULL; # was varchar(50) NOT NULL default ''
ALTER TABLE `item_section` CHANGE COLUMN `section_id` `section_id` bigint(20) NOT NULL; # was varchar(50) NOT NULL default ''
}}}
* response:
{{{
ALTER TABLE `response` CHANGE COLUMN `status` `status` set('correct','wrong','no_answer','empty','old','active') NOT NULL default 'active'; # was set('correct','wrong','no_answer','empty') NOT NULL default 'empty'
}}}
* section:
{{{
ALTER TABLE `section` CHANGE COLUMN `id` `id` bigint(20) unsigned NOT NULL auto_increment; # was bigint(20) NOT NULL auto_increment
ALTER TABLE `section` ADD COLUMN `metadata` text NOT NULL;
ALTER TABLE `section` ADD COLUMN `modified_date` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP;
}}}
* section_user:
{{{
ALTER TABLE `section_user` DROP PRIMARY KEY; # was (`section_id`,`user_id`)
ALTER TABLE `section_user` ADD PRIMARY KEY (`user_id`,`section_id`);
}}}
* system_settings:
{{{
ALTER TABLE `system_settings` ADD COLUMN `encrypt_items` set('false','true') NOT NULL default 'true';
}}}
* task:
{{{
ALTER TABLE `task` CHANGE COLUMN `go_back` `go_back` set('false','true') NOT NULL default 'true'; # was varchar(10) NOT NULL default 'true'
ALTER TABLE `task` DROP COLUMN `password`; # was varchar(255) default NULL
ALTER TABLE `task` ADD COLUMN `language` char(2) NOT NULL default 'nl';
ALTER TABLE `task` ADD COLUMN `branching_enabled` set('false','true') NOT NULL default 'false';
ALTER TABLE `task` ADD COLUMN `css` varchar(50) NOT NULL default 'show.css';
}}}
* task_log:
{{{
ALTER TABLE `task_log` DROP COLUMN `id`; # was varchar(20) NOT NULL default ''
ALTER TABLE `task_log` ADD COLUMN `reps` int(11) NOT NULL default '-1';
ALTER TABLE `task_log` DROP INDEX `user_id`; # was INDEX (`user_id`)
ALTER TABLE `task_log` ADD INDEX `user_id` (`user_id`,`task_id`);
}}}
* task_log_ops:
{{{
ALTER TABLE `task_log_ops` DROP INDEX `user_id`; # was INDEX (`user_id`)
ALTER TABLE `task_log_ops` ADD INDEX `user_id` (`user_id`,`task_id`);
}}}
* user:
{{{
ALTER TABLE `user` DROP INDEX `login`; # was INDEX (`username`)
ALTER TABLE `user` ADD INDEX `login_2` (`username`);
ALTER TABLE `user` ADD INDEX `idx_origin_id` (`origin_id`);
ALTER TABLE `user` CHANGE COLUMN `language` `language` char(2) NOT NULL default 'en'; # was char(2) default 'nl'
}}}
{{{
#!html