[PHP / SVN] Versiebeheer databaseschema's

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
In ons bedrijf maken wij momenteel gebruik van Subversion i.c.m. de Zend IDE om onze projecten te version-managen. Dit werkt natuurlijk prima voor ons programmeerwerk, maar het bijhouden van structuurwijzigingen in een database is een stuk lastiger.

Wat we zoeken is eigenlijk iets ala Active Migration in Ruby on Rails, maar dan in PHP :*)

Waar we zelf al aan dachten om dit makkelijk bij te houden, is databasewijzigingen tussen revisienummers te loggen, en bij een export deze wijzingingen weg te schrijven, maar liever automatiseren we dit verder.

Suggesties?

Acties:
  • 0 Henk 'm!

  • Herko_ter_Horst
  • Registratie: November 2002
  • Niet online
Zijn de databaseschema's niet in ASCII beschikbaar (als een .sql file)? Die kun je natuurlijk prima in SVN opslaan...

"Any sufficiently advanced technology is indistinguishable from magic."


Acties:
  • 0 Henk 'm!

  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

Dit zijn de sheets van een presentatie van een collega van mij.
http://innoveerjijmee.nl/.../id,46/Up-to-database.pdf

Zonder verhaal erbij is het misschien niet zo nuttig, maar de presentatie gaat precies over dit onderwerp.

Ik vind persoonlijk Liquibase een erg leuke tool.

Fat Pizza's pizza, they are big and they are cheezy


Acties:
  • 0 Henk 'm!

  • Boss
  • Registratie: September 1999
  • Laatst online: 10-09 15:23

Boss

+1 Overgewaardeerd

Wij gebruiken zelf sinds een tijdje DeZign for Databases van Datanamic. Je kan dan versies bijhouden van je datamodel, en eventueel ook de scripts laten genereren om in gebruik zijnde databases te converteren. Werkt met alle bekende DBMSsen samen.

Ze slaan zelf de data op in XML, dus evt kan je ook het versiebeheer gewoon in je eigen systeem doen.

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.


  • DexterDee
  • Registratie: November 2004
  • Laatst online: 17:37

DexterDee

I doubt, therefore I might be

Ik splits in de trunk meestal op in documentatie, database en sources.

In de directory database hou ik 3 dingen bij:
- Een actuele SQL structure dump van alle tabellen per database
- Een actuele SQL data dump van alle stamdata en (unit)testinstellingen
- SQL Migratiescriptjes waarin duidelijk staat [van revisie]-[naar revisie]

Door jezelf aan te wennen om ook een nieuwe structure dump te maken als door toegevoegde functionaliteit het databasemodel verandert, blijven je commits consistent.

Ik vind het makkelijk om bijvoorbeeld tussen mijn 1.0 tag en 1.1 tag de verschillen te bekijken in de structure file. Toegevoegde of verwijderde velden / tabellen zijn makkelijk te visualiseren. Zelfs al heb je geen migratiescripts gemaakt, dan is het nog prima leesbaar voor iemand met redelijke SQL kennis. Een handige tool om differences te bekijken vind ik WebSVN, aangezien die lekker laagdrempelig is (geen svn client, diff viewer nodig) en omdat deze op een goede manier met kleuren visualiseert wat er is veranderd.

Uiteraard is dit proces ook naar believen te automatiseren. Zo heb ik gewerkt in omgevingen waarin nightly builds werden gedaan. Het is dan een koud kunstje om even een mysqlexport scriptje ertussen te hangen om de actuele structuur te overschrijven.

Klik hier om mij een DM te sturen • 3245 WP op ZW