#!/bin/bash # mLohn update script 4 -> 5 # Table mitarbeiter: gebdat, soz_ver_num, steuerid, besch_beg # check parameter usage="upgrade" # check version if mysql -umlohn -pmlohn -N mlohn <<<"select * from version" >/dev/null 2>&1 then echo "version info available." else echo "no version info available." exit 1 fi version=$(mysql -umlohn -pmlohn -N mlohn <<<"select * from version") echo "mLohn version $version found." if [ $version -lt 4 ] then echo "Main version ${version%%.*} found. Upgrade not supported." exit 1 fi if [ $version -eq 5 ] then echo "Main version ${version%%.*} found. No upgrade necessary." exit 0 fi echo "Dump database" mysqldump --default-character-set=utf8 mlohn -umlohn -pmlohn >mlohn.dump || exit 1 echo "Rename tables in current database" mysql -umlohn -pmlohn mlohn <<END1 || exit 1 ALTER TABLE lohnabrechnung DROP FOREIGN KEY lohnabrechnung_FK_1; ALTER TABLE lohnabrechnung DROP FOREIGN KEY lohnabrechnung_FK_2; ALTER TABLE mitarbeiter DROP FOREIGN KEY mitarbeiter_FK_1; RENAME TABLE lohnabrechnung TO lohnabrechnung_old, lohnprofil TO lohnprofil_old, mitarbeiter TO mitarbeiter_old, arbeitgeberbtr TO arbeitgeberbtr_old; END1 echo "Create new schema" mysql -umlohn -pmlohn mlohn </usr/share/php/mLohn/Lohn/etc/schema.sql || exit 1 echo "Upgrade data" mysql -umlohn -pmlohn mlohn <<'END2' || exit 1 START TRANSACTION; INSERT INTO lohnprofil SELECT * FROM lohnprofil_old; INSERT INTO mitarbeiter SELECT `id`, `mod`, nachname, vorname, anrede, "1900-01-01", "SOZ0815", "ST0815", "2009-05-01", strasse, plz, ort, iban, bank, email, basis_betrag, steuermerkmal, aktiv, lp_id FROM mitarbeiter_old; INSERT INTO lohnabrechnung SELECT * from lohnabrechnung_old; INSERT INTO arbeitgeberbtr SELECT * FROM arbeitgeberbtr_old; drop table lohnabrechnung_old; drop table lohnprofil_old; drop table mitarbeiter_old; drop table arbeitgeberbtr_old; UPDATE version set db_version = 5; COMMIT; END2