-- MijnBesluit - de versiehistorie in de database in plaats van in de code -- -- De lijst "wat is er nieuw" stond vast in twee bestanden (Versiehistorie.razor in de site en in de -- app), en moest dus bij elke wijziging op twee plekken worden aangepast. En de app die al in de -- Play Store staat kon een nieuwe regel nooit tonen. Nu staat de lijst hier: de beheerder -- onderhoudt hem op de website (/beheer/versiehistorie), de site leest hem uit de database en de -- app vraagt hem aan de server. Een nieuwe regel is meteen overal te zien. -- -- version_history een regel per nieuwe of wezenlijk gewijzigde functie. Regels met dezelfde -- datum (en versie) worden samen onder één kop getoond. -- -- Regels die de server afdwingt (niet de database): -- * Alleen een beheerder maakt, wijzigt of verwijdert een regel. -- * Een verborgen regel (zichtbaar = 0) ziet alleen de beheerder. -- * Platte tekst: er gaat geen opmaak of HTML door. -- -- Draaien met: -- mysql -u root -p mijnbesluit < db\22_versiehistorie.sql -- -- Opnieuw draaien mag: er gebeurt dan niets. -- -- Na dit script, eenmalig als root: -- mysql -u root -p < db\02_applicatiegebruiker.sql (rechten op de nieuwe tabel) -- mysql -u root -p mijnbesluit < db\handmatig\22b_versiehistorie_startrijen.sql (de bestaande regels) USE `mijnbesluit`; CREATE TABLE IF NOT EXISTS `version_history` ( `id` INT NOT NULL AUTO_INCREMENT, `datum` DATE NOT NULL, -- de dag waarop de functie er kwam `versie` VARCHAR(20) NULL, -- bijvoorbeeld 1.1; leeg als het geen app-versie betreft `kop` VARCHAR(120) NOT NULL, -- het vette stukje: wat kun je nu `tekst` VARCHAR(1000) NOT NULL, -- de uitleg erachter, platte tekst `zichtbaar` TINYINT(1) NOT NULL DEFAULT 1, `aangemaakt_op` DATETIME(3) NOT NULL, `gewijzigd_op` DATETIME(3) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `ux_version_history_datum_kop` (`datum`, `kop`), KEY `ix_version_history_datum` (`datum`) ) ENGINE=InnoDB; -- Startrijen staan NIET hier maar in handmatig\22b_versiehistorie_startrijen.sql: de uitrolagent -- draait dit script met een account dat geen gegevens mag invoegen (zie 21_kluissoorten.sql). SELECT 'Klaar. De tabel voor de versiehistorie staat klaar. Vergeet handmatig\\22b_versiehistorie_startrijen.sql en 02_applicatiegebruiker.sql niet (als root).' AS melding;