Leitfaden Update der Wiki-Software

aus SkipperGuide, dem Online-Revierführer über die Segelreviere der Welt.
Zur Navigation springen Zur Suche springen

Leitfaden zur Aktualisierung der mediawiki-Software von SkipperGuide

1. Vorbereitung und Backup

1.1. Standard-Sicherung Datenbank und Webverzeichnis

 SSH> ./dumpdb
 SSH> ./dumpwebsites

1.2. Sicherung des aktuellen Version als Referenz

 SSH> cp -R www_skipperguide_de/* backup_skipperguide_de

1.3. Vorbereiten Testsystem

1.3.1. Kopieren der aktuellen Programmversion

Kopieren der Programmdateien

 SSH> cp -R www_skipperguide_de/* test_skipperguide_de

1.3.2. Anpassen DB-Connection

 Anpassen von 
 - LocalSettings.php
 - LocalDBSettings.php
 - AdminSettings.php
 DB-Präfix: "sg2_" --> "test_sg2_"

1.3.3. Anlegen Test-Datenbank

(Sofern die Testdatenbank nicht auf aktuellem Stand der mediawiki-Version ist)

Überblick Tabellen

sg2_archive
sg2_categorylinks
sg2_externallinks
sg2_filearchive
sg2_hitcounter
sg2_image
sg2_imagelinks
sg2_interwiki
sg2_ipblocks
sg2_ipblocks_old
sg2_job
sg2_langlinks
sg2_logging
sg2_math
sg2_objectcache
sg2_oldimage
sg2_page
sg2_pagelinks
sg2_page_restrictions
sg2_querycache
sg2_querycachetwo
sg2_querycache_info
sg2_recentchanges
sg2_redirect
sg2_revision
sg2_searchindex
sg2_site_stats
sg2_templatelinks
sg2_text
sg2_trackbacks
sg2_transcache
sg2_user
sg2_user_groups
sg2_user_newtalk
sg2_validate
sg2_watchlist

1.3.3.1. Kopieren der Tabellen

für jede Tabelle

 SQL> CREATE TABLE test_<TBL_NAME> AS SELECT * FROM <TBL_NAME>

1.3.3.2. Anlegen der Indizes

wichtig, weil das mediawiki-update-Skript sonst bei "DROP INDEX" Fehler meldet

Erzeugen des SQL-Statements zur Index-Erstellung auf Basis von "sg2_*":

 SELECT
     CONCAT(
         ‘ALTER TABLE `’,
         TABLE_NAME,
         ‘` ‘,
         ‘ADD ‘,
         IF(NON_UNIQUE = 1,
             CASE UPPER(INDEX_TYPE)
                 WHEN ‘FULLTEXT’ THEN ‘FULLTEXT INDEX’
                 WHEN ‘SPATIAL’ THEN ‘SPATIAL INDEX’
                 ELSE CONCAT(‘INDEX `’,
                             INDEX_NAME,
                             ‘` USING ‘,
                             INDEX_TYPE
                     )
             END,
             IF(UPPER(INDEX_NAME) = ‘PRIMARY’,
                 CONCAT(‘PRIMARY KEY USING ‘,
                         INDEX_TYPE
                 ),
                 CONCAT(‘UNIQUE INDEX `’,
                         INDEX_NAME,
                         ‘` USING ‘,
                         INDEX_TYPE
                 )
             )
         ),
         ‘(’,
         GROUP_CONCAT(
             DISTINCT
                 CONCAT(‘`’, COLUMN_NAME, ‘`’)
             ORDER BY SEQ_IN_INDEX ASC
             SEPARATOR ‘, ‘
         ),
         ‘);’
      ) AS ‘Show_Add_Indexes’
 FROM information_schema.STATISTICS
 WHERE TABLE_SCHEMA like ’sg2_%’
 GROUP BY TABLE_NAME, INDEX_NAME
 ORDER BY TABLE_NAME ASC, INDEX_NAME ASC

Generierte Liste SQL

(Auf Basis mediawiki-1.10.)

 ALTER TABLE test_sg2_archive ADD INDEX name_title_timestamp USING BTREE(ar_namespace, ar_title, ar_timestamp);
 ALTER TABLE test_sg2_categorylinks ADD UNIQUE INDEX cl_from USING BTREE(cl_from, cl_to);
 ALTER TABLE test_sg2_categorylinks ADD INDEX cl_sortkey USING BTREE(cl_to, cl_sortkey);
 ALTER TABLE test_sg2_categorylinks ADD INDEX cl_timestamp USING BTREE(cl_to, cl_timestamp);
 ALTER TABLE test_sg2_externallinks ADD INDEX el_from USING BTREE(el_from, el_to);
 ALTER TABLE test_sg2_externallinks ADD INDEX el_index USING BTREE(el_index);
 ALTER TABLE test_sg2_externallinks ADD INDEX el_to USING BTREE(el_to, el_from);
 ALTER TABLE test_sg2_filearchive ADD INDEX fa_deleted_timestamp USING BTREE(fa_deleted_timestamp);
 ALTER TABLE test_sg2_filearchive ADD INDEX fa_deleted_user USING BTREE(fa_deleted_user);
 ALTER TABLE test_sg2_filearchive ADD INDEX fa_name USING BTREE(fa_name, fa_timestamp);
 ALTER TABLE test_sg2_filearchive ADD INDEX fa_storage_group USING BTREE(fa_storage_group, fa_storage_key);   
 ALTER TABLE test_sg2_filearchive ADD PRIMARY KEY USING BTREE(fa_id);              
 ALTER TABLE test_sg2_image ADD INDEX img_size USING BTREE(img_size);             
 ALTER TABLE test_sg2_image ADD INDEX img_timestamp USING BTREE(img_timestamp);
 ALTER TABLE test_sg2_image ADD PRIMARY KEY USING BTREE(img_name);               
 ALTER TABLE test_sg2_imagelinks ADD UNIQUE INDEX il_from USING BTREE(il_from, il_to);
 ALTER TABLE test_sg2_imagelinks ADD INDEX il_to USING BTREE(il_to, il_from);
 ALTER TABLE test_sg2_interwiki ADD UNIQUE INDEX iw_prefix USING BTREE(iw_prefix);
 ALTER TABLE test_sg2_ipblocks ADD UNIQUE INDEX ipb_address_unique USING BTREE(ipb_address, ipb_user, ipb_auto);  
 ALTER TABLE test_sg2_ipblocks ADD INDEX ipb_expiry USING BTREE(ipb_expiry);            
 ALTER TABLE test_sg2_ipblocks ADD INDEX ipb_range USING BTREE(ipb_range_start, ipb_range_end);      
 ALTER TABLE test_sg2_ipblocks ADD INDEX ipb_timestamp USING BTREE(ipb_timestamp);          
 ALTER TABLE test_sg2_ipblocks ADD INDEX ipb_user USING BTREE(ipb_user);
 ALTER TABLE test_sg2_ipblocks ADD PRIMARY KEY USING BTREE(ipb_id);              
 ALTER TABLE test_sg2_ipblocks_old ADD INDEX ipb_address USING BTREE(ipb_address);          
 ALTER TABLE test_sg2_ipblocks_old ADD INDEX ipb_range USING BTREE(ipb_range_start, ipb_range_end);     
 ALTER TABLE test_sg2_ipblocks_old ADD INDEX ipb_user USING BTREE(ipb_user);            
 ALTER TABLE test_sg2_ipblocks_old ADD PRIMARY KEY USING BTREE(ipb_id);             
 ALTER TABLE test_sg2_job ADD INDEX job_cmd USING BTREE(job_cmd, job_namespace, job_title);       
 ALTER TABLE test_sg2_job ADD PRIMARY KEY USING BTREE(job_id);                
 ALTER TABLE test_sg2_langlinks ADD UNIQUE INDEX ll_from USING BTREE(ll_from, ll_lang);        
 ALTER TABLE test_sg2_langlinks ADD INDEX ll_lang USING BTREE(ll_lang, ll_title);          
 ALTER TABLE test_sg2_logging ADD INDEX page_time USING BTREE(log_namespace, log_title, log_timestamp);    
 ALTER TABLE test_sg2_logging ADD PRIMARY KEY USING BTREE(log_id);               
 ALTER TABLE test_sg2_logging ADD INDEX times USING BTREE(log_timestamp);            
 ALTER TABLE test_sg2_logging ADD INDEX type_time USING BTREE(log_type, log_timestamp);        
 ALTER TABLE test_sg2_logging ADD INDEX user_time USING BTREE(log_user, log_timestamp);        
 ALTER TABLE test_sg2_math ADD UNIQUE INDEX math_inputhash USING BTREE(math_inputhash);
 ALTER TABLE test_sg2_objectcache ADD INDEX exptime USING BTREE(exptime);
 ALTER TABLE test_sg2_objectcache ADD UNIQUE INDEX keyname USING BTREE(keyname);
 ALTER TABLE test_sg2_oldimage ADD INDEX oi_name USING BTREE(oi_name);
 ALTER TABLE test_sg2_page ADD UNIQUE INDEX name_title USING BTREE(page_namespace, page_title);      
 ALTER TABLE test_sg2_page ADD INDEX page_len USING BTREE(page_len);              
 ALTER TABLE test_sg2_page ADD INDEX page_random USING BTREE(page_random);            
 ALTER TABLE test_sg2_page ADD PRIMARY KEY USING BTREE(page_id);               
 ALTER TABLE test_sg2_pagelinks ADD UNIQUE INDEX pl_from USING BTREE(pl_from, pl_namespace, pl_title);    
 ALTER TABLE test_sg2_pagelinks ADD INDEX pl_namespace USING BTREE(pl_namespace, pl_title, pl_from);     
 ALTER TABLE test_sg2_page_restrictions ADD PRIMARY KEY USING BTREE(pr_page, pr_type);         
 ALTER TABLE test_sg2_page_restrictions ADD INDEX pr_cascade USING BTREE(pr_cascade);         
 ALTER TABLE test_sg2_page_restrictions ADD UNIQUE INDEX pr_id USING BTREE(pr_id);          
 ALTER TABLE test_sg2_page_restrictions ADD INDEX pr_level USING BTREE(pr_level);          
 ALTER TABLE test_sg2_page_restrictions ADD INDEX pr_page USING BTREE(pr_page);
 ALTER TABLE test_sg2_page_restrictions ADD INDEX pr_typelevel USING BTREE(pr_type, pr_level);
 ALTER TABLE test_sg2_querycache ADD INDEX qc_type USING BTREE(qc_type, qc_value);          
 ALTER TABLE test_sg2_querycachetwo ADD INDEX qcc_title USING BTREE(qcc_type, qcc_namespace, qcc_title);    
 ALTER TABLE test_sg2_querycachetwo ADD INDEX qcc_titletwo USING BTREE(qcc_type, qcc_namespacetwo, qcc_titletwo); 
 ALTER TABLE test_sg2_querycachetwo ADD INDEX qcc_type USING BTREE(qcc_type, qcc_value);
 ALTER TABLE test_sg2_querycache_info ADD UNIQUE INDEX qci_type USING BTREE(qci_type);         
 ALTER TABLE test_sg2_recentchanges ADD INDEX new_name_timestamp USING BTREE(rc_new, rc_namespace, rc_timestamp); 
 ALTER TABLE test_sg2_recentchanges ADD PRIMARY KEY USING BTREE(rc_id);             
 ALTER TABLE test_sg2_recentchanges ADD INDEX rc_cur_id USING BTREE(rc_cur_id);           
 ALTER TABLE test_sg2_recentchanges ADD INDEX rc_ip USING BTREE(rc_ip);             
 ALTER TABLE test_sg2_recentchanges ADD INDEX rc_namespace_title USING BTREE(rc_namespace, rc_title);     
 ALTER TABLE test_sg2_recentchanges ADD INDEX rc_ns_usertext USING BTREE(rc_namespace, rc_user_text);     
 ALTER TABLE test_sg2_recentchanges ADD INDEX rc_timestamp USING BTREE(rc_timestamp);         
 ALTER TABLE test_sg2_recentchanges ADD INDEX rc_user_text USING BTREE(rc_user_text, rc_timestamp);     
 ALTER TABLE test_sg2_redirect ADD PRIMARY KEY USING BTREE(rd_from);              
 ALTER TABLE test_sg2_redirect ADD INDEX rd_ns_title USING BTREE(rd_namespace, rd_title, rd_from);     
 ALTER TABLE test_sg2_revision ADD INDEX page_timestamp USING BTREE(rev_page, rev_timestamp);       
 ALTER TABLE test_sg2_revision ADD PRIMARY KEY USING BTREE(rev_page, rev_id);
 ALTER TABLE test_sg2_revision ADD UNIQUE INDEX rev_id USING BTREE(rev_id);            
 ALTER TABLE test_sg2_revision ADD INDEX rev_timestamp USING BTREE(rev_timestamp);          
 ALTER TABLE test_sg2_revision ADD INDEX usertext_timestamp USING BTREE(rev_user_text, rev_timestamp);     
 ALTER TABLE test_sg2_revision ADD INDEX user_timestamp USING BTREE(rev_user, rev_timestamp);       
 ALTER TABLE test_sg2_searchindex ADD UNIQUE INDEX si_page USING BTREE(si_page);           
 ALTER TABLE test_sg2_searchindex ADD FULLTEXT INDEX(si_text);                
 ALTER TABLE test_sg2_searchindex ADD FULLTEXT INDEX(si_title);               
 ALTER TABLE test_sg2_site_stats ADD UNIQUE INDEX ss_row_id USING BTREE(ss_row_id);          
 ALTER TABLE test_sg2_templatelinks ADD UNIQUE INDEX tl_from USING BTREE(tl_from, tl_namespace, tl_title);   
 ALTER TABLE test_sg2_templatelinks ADD INDEX tl_namespace USING BTREE(tl_namespace, tl_title, tl_from);    
 ALTER TABLE test_sg2_text ADD PRIMARY KEY USING BTREE(old_id);               
 ALTER TABLE test_sg2_trackbacks ADD PRIMARY KEY USING BTREE(tb_id);              
 ALTER TABLE test_sg2_trackbacks ADD INDEX tb_page USING BTREE(tb_page);             
 ALTER TABLE test_sg2_transcache ADD UNIQUE INDEX tc_url_idx USING BTREE(tc_url);          
 ALTER TABLE test_sg2_user ADD PRIMARY KEY USING BTREE(user_id);               
 ALTER TABLE test_sg2_user ADD INDEX user_email_token USING BTREE(user_email_token);          
 ALTER TABLE test_sg2_user ADD UNIQUE INDEX user_name USING BTREE(user_name);           
 ALTER TABLE test_sg2_user_groups ADD PRIMARY KEY USING BTREE(ug_user, ug_group);          
 ALTER TABLE test_sg2_user_groups ADD INDEX ug_group USING BTREE(ug_group);            
 ALTER TABLE test_sg2_user_newtalk ADD INDEX user_id USING BTREE(user_id);            
 ALTER TABLE test_sg2_user_newtalk ADD INDEX user_ip USING BTREE(user_ip);            
 ALTER TABLE test_sg2_validate ADD INDEX val_user USING BTREE(val_user, val_revision);         
 ALTER TABLE test_sg2_watchlist ADD INDEX namespace_title USING BTREE(wl_namespace, wl_title);
 ALTER TABLE test_sg2_watchlist ADD UNIQUE INDEX wl_user USING BTREE(wl_user, wl_namespace, wl_title);    
 ALTER TABLE sgtmp_transcache ADD UNIQUE INDEX tc_url_idx USING BTREE(tc_url);          
 ALTER TABLE test_test_sg2_archive ADD INDEX name_title_timestamp USING BTREE(ar_namespace, ar_title, ar_timestamp); 
 ALTER TABLE test_test_sg2_categorylinks ADD UNIQUE INDEX cl_from USING BTREE(cl_from, cl_to);       
 ALTER TABLE test_test_sg2_categorylinks ADD INDEX cl_sortkey USING BTREE(cl_to, cl_sortkey);       
 ALTER TABLE test_test_sg2_categorylinks ADD INDEX cl_timestamp USING BTREE(cl_to, cl_timestamp);      
 ALTER TABLE test_test_sg2_externallinks ADD INDEX el_from USING BTREE(el_from, el_to);        
 ALTER TABLE test_test_sg2_externallinks ADD INDEX el_index USING BTREE(el_index);
 ALTER TABLE test_test_sg2_externallinks ADD INDEX el_to USING BTREE(el_to, el_from);
 ALTER TABLE test_test_sg2_image ADD UNIQUE INDEX img_name USING BTREE(img_name);

1.3.3.3. Anlegen Auto-Inkrements

Ohne das kommt es zu Fehlern beim Berarbeiten von Artikeln (z.B.: old_id cannot be NULL)

 ALTER TABLE `test_sg2_categorylinks` CHANGE `cl_timestamp` `cl_timestamp` TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP;
 ALTER TABLE `test_sg2_ipblocks` CHANGE `ipb_id` `ipb_id` INT( 8 ) NOT NULL AUTO_INCREMENT;
 ALTER TABLE `test_sg2_job` CHANGE `job_id` `job_id` INT( 9 ) UNSIGNED NOT NULL AUTO_INCREMENT;
 ALTER TABLE `test_sg2_page` CHANGE `page_id` `page_id` INT( 8 ) UNSIGNED NOT NULL AUTO_INCREMENT;
 ALTER TABLE `test_sg2_recentchanges` CHANGE `rc_id` `rc_id` INT( 8 ) NOT NULL AUTO_INCREMENT;
 ALTER TABLE `test_sg2_revision` CHANGE `rev_id` `rev_id` INT( 8 ) UNSIGNED NOT NULL AUTO_INCREMENT;
 ALTER TABLE `test_sg2_text` CHANGE `old_id` `old_id` INT( 8 ) UNSIGNED NOT NULL AUTO_INCREMENT;
 ALTER TABLE `test_sg2_trackbacks` CHANGE `tb_id` `tb_id` INT( 11 ) NOT NULL AUTO_INCREMENT;
 ALTER TABLE `test_sg2_user` CHANGE `user_id` `user_id` INT( 5 ) UNSIGNED NOT NULL AUTO_INCREMENT;
 ALTER TABLE `test_sg2_logging` CHANGE `log_id` `log_id` INT( 10 ) UNSIGNED NOT NULL AUTO_INCREMENT;

ALTERNATIVE 1.3.3.X Aktualisieren der Test-Datenbank bei bestehendem Datenbank-Schema

Existiert bereits das Datenbank-Schema "test_sg2_*", kann mit folgendem Skript die Test-Datenbank aktualisiert und auf den aktuellen Stand der Produktivdatenbank gebracht werden:

 truncate table test_sg2_archive;
 truncate table test_sg2_categorylinks;
 truncate table test_sg2_externallinks;
 truncate table test_sg2_filearchive;
 truncate table test_sg2_hitcounter;
 truncate table test_sg2_image;
 truncate table test_sg2_imagelinks;
 truncate table test_sg2_interwiki;
 truncate table test_sg2_ipblocks;
 truncate table test_sg2_ipblocks_old;
 truncate table test_sg2_job;
 truncate table test_sg2_langlinks;
 truncate table test_sg2_logging;
 truncate table test_sg2_math;
 truncate table test_sg2_objectcache;
 truncate table test_sg2_oldimage;
 truncate table test_sg2_page;
 truncate table test_sg2_pagelinks;
 truncate table test_sg2_page_restrictions;
 truncate table test_sg2_querycache;
 truncate table test_sg2_querycachetwo;
 truncate table test_sg2_querycache_info;
 truncate table test_sg2_recentchanges;
 truncate table test_sg2_redirect;
 truncate table test_sg2_revision;
 truncate table test_sg2_searchindex;
 truncate table test_sg2_site_stats;
 truncate table test_sg2_templatelinks;
 truncate table test_sg2_text;
 truncate table test_sg2_trackbacks;
 truncate table test_sg2_transcache;
 truncate table test_sg2_user;
 truncate table test_sg2_user_groups;
 truncate table test_sg2_user_newtalk;
 truncate table test_sg2_validate;
 truncate table test_sg2_watchlist;
 insert into test_sg2_archive select * from sg2_archive;
 insert into test_sg2_categorylinks select * from sg2_categorylinks;
 insert into test_sg2_externallinks select * from sg2_externallinks;
 insert into test_sg2_filearchive select * from sg2_filearchive;
 insert into test_sg2_hitcounter select * from sg2_hitcounter;
 insert into test_sg2_image select * from sg2_image;
 insert into test_sg2_imagelinks select * from sg2_imagelinks;
 insert into test_sg2_interwiki select * from sg2_interwiki;
 insert into test_sg2_ipblocks select * from sg2_ipblocks;
 insert into test_sg2_ipblocks_old select * from sg2_ipblocks_old;
 insert into test_sg2_job select * from sg2_job;
 insert into test_sg2_langlinks select * from sg2_langlinks;
 insert into test_sg2_logging select * from sg2_logging;
 insert into test_sg2_math select * from sg2_math;
 insert into test_sg2_objectcache select * from sg2_objectcache;
 insert into test_sg2_oldimage select * from sg2_oldimage;
 insert into test_sg2_page select * from sg2_page;
 insert into test_sg2_pagelinks select * from sg2_pagelinks;
 insert into test_sg2_page_restrictions select * from sg2_page_restrictions;
 insert into test_sg2_querycache select * from sg2_querycache;
 insert into test_sg2_querycachetwo select * from sg2_querycachetwo;
 insert into test_sg2_querycache_info select * from sg2_querycache_info;
 insert into test_sg2_recentchanges select * from sg2_recentchanges;
 insert into test_sg2_redirect select * from sg2_redirect;
 insert into test_sg2_revision select * from sg2_revision;
 insert into test_sg2_searchindex select * from sg2_searchindex;
 insert into test_sg2_site_stats select * from sg2_site_stats;
 insert into test_sg2_templatelinks select * from sg2_templatelinks;
 insert into test_sg2_text select * from sg2_text;
 insert into test_sg2_trackbacks select * from sg2_trackbacks;
 insert into test_sg2_transcache select * from sg2_transcache;
 insert into test_sg2_user select * from sg2_user;
 insert into test_sg2_user_groups select * from sg2_user_groups;
 insert into test_sg2_user_newtalk select * from sg2_user_newtalk;
 insert into test_sg2_validate select * from sg2_validate;
 insert into test_sg2_watchlist select * from sg2_watchlist;

1.3.3.4. Test der Testinstallation

Testen der Anwendung über test.skipperguide.de. Folgende Schnelltests durchführen:

 1. Anzeigen von Artikeln ohne Bilder
 2. Anzeigen von Artikeln mit Bildern
 3. Anzeigen der Änderungshistorie (entspricht sie der Standard-Installation?)
 4. Bearbeiten eines Artikels
 5. Anzeigen der Änderungdshistorie, prüfen, dass diese Änderung *nicht* in der Änderungshistorie der Standardinstallation auftaucht.


2. Update

2.1. Download aktuelle mediawiki-Version

 SSH> cd test_skipperguide_de/tmp
 SSH> lynx http://<mediawiki-website>, Download aktuelle mediawiki-Version

2.2. Entpacken und installieren

Das tar kommt im Verzeichnis "mediawiki-<VERSION>". Der Server kennt -in Abweichung zur Installationsanleitung mediawiki- die Option "ignore-path=1" nicht.

Daher das tar in ein Unterverzeichnis entpacken, ohne Hauptverzeichnis neu packen und dann in das mediawiki-Verzeichnis der Installation einspielen:

 SSH> cd test_skipperguide_de/tmp

Entpacken

 1. SSH> tar xvfz <mediawiki-XY.tar.gz>

Neu Packen:

 2. SSH> cd mediawiki-XY
 3. SSH> tar cvf tmp.tar *

Ins Installationsverzeichnis entpacken:

 4. SSH> mv tmp.tar ../../mediawiki
 5. SSH> cd ../../mediawiki
 6. SSH> tar xvf tmp.tar

2.3. Updateskripte durchführen

2.3.1. AdminSettings.php kontrollieren

Kontrollieren, dass in der AdminSettings.php die korrekte Datenbankconnection und das korrekte DB-Präfix (test_sg2_) eingestellt ist!

2.3.2. Ausführen der Updateskripte

Anleitung der mediawiki-Updateanleitung folgen. Hinweis: Statt "php" muss in der Kommandozeile "php5" verwendet werden!!

Bisher:

 1. SSH> cd test_skipperguide_de/mediawiki/maintenance
 2. SSH> php5 update.php -akonf ../AdminSettings.php

2.3.3. Kontrollieren Update

Kontrolle des korrekten Updates der Programmversion

 1. Prüfen von http://test.skipperguide.de/wiki/Spezial:Version
 2. Anzeigen von Artikeln, Bearbeiten von Artikeln, Anlegen von Artikeln

2.3.4. Kontrolle der korrekten Funktionsweise der Zusatzfeatures/Extensions

Manuelle Prüfung, ob die Extensions wie GoogleMaps, CharInsert, etc funktionieren. Hierzu die Liste unter "Spezial:Version" vergleichen.

Bei Bedarf einzelne Extensions neu installieren (Vorher bitte Schritt 3 durchführen!).

Hinweis: es kann grundsätzlich nach dem Update zu CSS-Problemen kommen. Daher zuerst die SkipperGuide spezifischen Anpassungen durchführen, bevor die Funktionsweise der Extensions endgültig beurteilt werden kann.

3. Anpassung der SkipperGuide-spezifischen Features

Es gibt ein paar SkipperGuide-spezifische Anpassungen, die nach einem Update wahrscheinlich aktualisiert werden müssen, weil sie in den mediawiki-Sourcen eingebaut wurden.

Im einzelnen handelt es sich um

Es gab in der Vergangenheit Probleme mit dem Seitentemplate, dem CSS und JavaScript, wo einige Erweitungen nicht standardkonform eingebaut werden konnten (Siehe auch EMails mit Erik, Stichwort "wikibits.js"

3.1. Anzeige Bearbeiter in Footer

Betroffene Dateien:

 includes/Article.php
 includes/Skin.php

Details siehe SkipperGuide:Interne_Dokumentation/Seitenfooter

3.2. Stats

Betroffene Dateien:

 index.php

Details siehe SkipperGuide:Interne_Dokumentation

3.3. Externe Links in neuem Fenster

Betroffene Dateien

 includes/Linker.php

Details siehe SkipperGuide:Interne_Dokumentation/Externe_Links_im_neuen_Fenster

4. Übernahme aus dem Testsystem ins Produktivsystem

Nach ausführlichen Tests muss die Installation auf dem Produktivsystem durchgeführt werden. Hierzu wird das tmp.tar ins Produktivverzeichnis übernommen, der normale Update-Vorgang gestartet und abschließend die Dateien aus dem Testsystem ins Produktivsystem kopiert

Vorbereitung: nochmal den Schritt #1.2. Sicherung des aktuellen Version als Referenz durchführen, um den aktuellsten Stand zu sichern! (z.B. wegen dem image-Verzeichnissen)

4.1. Einspielen der aktualisierten Programmversion

Übernehmen des tmp.tars ins Produktivsystem. Grund: die Update-Skripte für die Datenbank müssen auf dem Produktivsystem ausgeführt werden! Es kann nicht ausgeschlossen werden, dass die Update-Skripte auch Dateien verändern, so dass ein sauberer Pre-Update-Stand geschaffen werden muss.

 1. SSH> cd www_skipperguide_de/mediawiki
 2. SSH> cp ../../test_skipperguide_de/mediawiki/tmp.tar .
 3. SSH> tar xvf tmp.tar

4.2. Update-Skripte

Vorher: korrekte Config in AdminSettings.php prüfen (Datenbank-Präfix muss "sg2_" sein!

Weiteres Vorgehen: siehe #2.3. Updateskripte durchführen

4.3. Update der Programmdateien

Kopieren des Dateisystems aus dem Testsystem ins Produktivverzeichnis:

 SSH> cp -R test_skipperguide_de/mediawiki/* www_skipperguide_de/mediawiki

Aktualisieren von

 AdminSettings.php
 LocalSettings.php
 LocalDBSettings.php

--> Datenbank-Präfix von "test_sg2_" nach "sg2_" ändern

4.4. Kontrolle des Produktivsystems

Ausführliche Kontrolle des Produktivsystems und aller Plugins!