Projekti

Yleinen

Profile

Versiopäivityksen tietokantapäivityksen läpi murjominen

Versiopäivitys KohaSuomi 3.16 -> KohaSuomi 17.05

Ennen dumpin ottoa, lähdekannasta pitää siivota:

Tuplat deletedbiblioitems-taulusta

SELECT biblionumber, COUNT(biblionumber) FROM deletedbiblioitems GROUP BY biblionumber HAVING COUNT(biblionumber) > 1;

Tupla-userid:t borrowers-taulusta

SELECT borrowernumber, COUNT(userid) FROM borrowers GROUP BY userid HAVING COUNT(userid) > 1;
CREATE TEMPORARY TABLE IF NOT EXISTS table2 AS (SELECT userid, COUNT(userid) FROM borrowers GROUP BY userid HAVING COUNT(userid) > 1);
UPDATE borrowers b SET b.userid = RAND(), b.opacnote = CONCAT(b.opacnote, ". Vanha käyttäjätunnus ",b.userid ," jouduttu vaihtamaan. Voit vaihtaa itsellesi uuden käyttäjätunnuksen. Pahoittelemme häiriötä.") WHERE b.userid IN (SELECT t.userid FROM table2 t);

AtomicUpdate issue_id notaatio formalisoituu ja hävitetään dynaamisuuksia. atomicupdates-taulua pitää siistiä ja nimeämiskäytänteitä korjata.

Valitaan risuaita-atomicupdate-rivit, jotka muutoksen jälkeen olisivat tuplarivejä:

SELECT atomicupdate_id, CONCAT('KD-',SUBSTR(issue_id,2)) as new_issue_id, issue_id FROM atomicupdates WHERE issue_id REGEXP '^#[0-9]' AND CONCAT('KD-',SUBSTR(issue_id,2)) IN (SELECT issue_id FROM atomicupdates);

Poista kaikki rivit mitä sait tuolla haulla

DELETE FROM atomicupdates WHERE atomicupdate_id = nn;

Nimeä uudelleen risuaitasurkimukset

UPDATE atomicupdates SET issue_id = CONCAT('KD-',SUBSTR(issue_id,2)) WHERE issue_id REGEXP '^#[0-9]';

Sama juttu KD[0-9]-alkuisille

SELECT atomicupdate_id, CONCAT('KD-',SUBSTR(issue_id,3)) as new_issue_id, issue_id FROM atomicupdates WHERE issue_id REGEXP '^KD[0-9]' AND CONCAT('KD-',SUBSTR(issue_id,3)) IN (SELECT issue_id FROM atomicupdates);
DELETE FROM atomicupdates WHERE atomicupdate_id = nn;
UPDATE atomicupdates SET issue_id = CONCAT('KD-',SUBSTR(issue_id,3)) WHERE issue_id REGEXP '^KD[0-9]';

Sama juttu Bug[0-9]-alkuisille

SELECT atomicupdate_id, CONCAT('Bug-',SUBSTR(issue_id,4)) as new_issue_id, issue_id FROM atomicupdates WHERE issue_id REGEXP '^Bug[0-9]' AND CONCAT('Bug-',SUBSTR(issue_id,4)) IN (SELECT issue_id FROM atomicupdates);
DELETE FROM atomicupdates WHERE atomicupdate_id = nn;
UPDATE atomicupdates SET issue_id = CONCAT('Bug-',SUBSTR(issue_id,4)) WHERE issue_id REGEXP '^Bug[0-9]';

Ota MariaDB5-version tietokannasta dumppi

mysqldump --single-transaction koha > koha.sql

Vie uuteen MariaDB10-versioon.

mysql < koha.sql

Jos on ongelmia saada dumppi menemään sisää, käytä '--force', tällöin koko ajo ei kaatua vaan yrittää sitkeästi taistella loppuun saakka, kävi miten kävi. Tällai saat enemmän tietoa mitä kaikkea siellä menee vikaa ja vioit jälkikäteen tarkastella tietokannan eheyttä. --force näyttää hävittävän aika paljon asiakastietoja joissa ongelmia?
Ongelmia havaittu lähinnä anonymisoidun dumpin tuonnissa. Tuotantodumppi menee kivasti läpi.

Tietokantasiirron ongelmakohtia
ERROR 1005 (HY000) at line 1527: Can't create table `vaara_koha`.`auth_tag_structure` (errno: 150 "Foreign key constraint is incorrectly formed")

Korjattu koppaamalla epäonnistuva CREATE TABLE-komento kohastructure.sql:stä ja ajamalla se tietokantaan.

Siirrettävä data eroteltu koha.sql-tiedostosta ja viety kantaan:

grep -P 'INSERT INTO `auth_tag_structure`' koha.sql > auth_tag_structure.data.sql
mysql < auth_tag_structure.data.sql

Oleellista on että koha.sql-tiedostoa ei muokata millään editorilla, joka tallentaa sen muuna kuin binäärimuotoisena datana!

perl $KOHA_PATH/permission_rewrite_compat.pl

Hakee automaagisesti Koha-yhteisöltä vanhan tyyppiset permissions-filut ja asentaa puuttuvat käyttöoikeudet kantaasi.
Hävitä muuttuneet userflags.sql ja userpermissions.sql muutokset versionhallinnasta.

perl installer/data/mysql/updatedatabase.pl

Käyty läpi mitä ongelmia noussut tietokannan versiopäivityksessä.
Ongelmia aiheuttaa lähinnä backportatut sysprefit ja Auth-rewrite:n uudet käyttöoikeudet pitää muokata.

Huolehdi että kaikki kohdassa "h5. Viety uuteen MariaDB10-versioon." havaitut virheet on korjattu ensin!

Vaara-tietokantaa tuotaessa havaitut ongelmat korjattu updatedatabase.pl:ään ja tuotu versionhallintaan,

KD-0 - KohaSuomi3.16 to KohaSuomi17.05 updatedatabase.pl fixes

Jälkipyykkiä.

Konversion jälkeen tietokantaa on hyvä siivota ylimääräiseltä tauhkalta

borrowers-taulussa othernames-sarakkeella monta UNIQUE-indeksiä
ALTER TABLE borrowers DROP INDEX `othernames_5`;