CI/CD met database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ad Fundum

Ad Fundum

16/05/2023 21:25:39
Quote Anchor link
Database wijzigingen kon ik altijd zelf doen, als een soort DevOps. Snel een patch in de code, dat uploaden, de benodigde database aanpassingen doen wanneer niemand het in de gaten had, en klaar.
Die tijd is ook voorbij aan het gaan. Het technisch beheer en functioneel beheer wil ik uit handen gaan geven.
Mijn applicatie wordt nu als een APT-pakket vanuit een eigen APT-repository gedistribueerd en de applicatie kan zichzelf daardoor updaten vanuit de browser. Nu zit ik na te denken over wat dit betekent voor de database code.

Voor een ORM is de database te complex. Dus heb ik om te beginnen heb ik een initialisatiescript gemaakt om een kale database aan te maken. En upgrade scripts waarmee een bestaande database naar een volgende versie kan worden gebracht. De scripts maken deel uit van de code en kunnen fijn mee in de Git-repository.
De database is gedocumenteerd. Alle tabellen, kolommen en constraints zijn voorzien van commentaar, en ik kan een SQL-script schrijven dat benodigde documentatie in Markdown genereert.

Wat ik merk is dat ik nog niet een gestroomlijnde opzet heb voor CI/CD. Dat is ook wel logisch, want ik heb er tot nu toe nog geen ervaring mee (nodig) gehad.
Ik heb al wel een bash script dat een database aanmaakt en vult vanuit init SQL-scripts, en dat demo-/testdata genereert. De update SQL-scripts test ik handmatig op de oude versie voordat ik de nieuwe aanmaak. Vanuit de database genereer ik idealiter zelf documentatie in Markdown-notatie. En alle code (incl. SQL en Markdown) is vanuit de IDE benaderbaar.

Het is een lang verhaal geworden, maar ik vraag me nu vooral af wie er hier ervaring heeft met, of kennis van CI/CD.
Hoe zou je bovenstaande beter kunnen inrichten? Zijn er behulpzame tools die ik heb gemist?
Gewijzigd op 17/05/2023 11:11:28 door Ad Fundum
 
PHP hulp

PHP hulp

19/03/2024 05:26:12
 
Ward van der Put
Moderator

Ward van der Put

17/05/2023 12:56:07
Quote Anchor link
Ik mis vooral een test suite. Je kunt niet blindvaren op een CI/CD-pijplijn zonder unit tests, acceptance tests, integration tests en end-to-end tests.
 
Ad Fundum

Ad Fundum

17/05/2023 15:40:53
Quote Anchor link
Units tests: in de code zijn unit tests aanwezig die worden uitgevoerd voor uitgifte.
Audit tests: ook wordt de code gescand op bekende kwetsbaarheden.
Integratietests: De GUI tests verlopen nu handmatig vanuit de browser, dan zie ik ook of alle queries werken.
In een later stadium automatiseer ik dat nog met Selenium.
Acceptatietests: verlopen handmatig met een voorgedefineerd testscript bij de klant.
End-to-end tests: wat bedoel je daar precies mee?

Wat voor mij het belangrijkste is; hoe ga je om met wijzigingen in de database structuur?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.