Hallo allemaal,

Ben van plan om updates binnenkort door te voeren op mijn website dmv version control. Alleen nu heb ik wel een paar vragen omtrent de database, als ik bijvoorbeeld nu thuis op een testserver mijn db structuur verander, hoe verander ik dit dan ook bij mijn live server?

(Voor de duidelijkheid, ik gebruik git)

Grt

Raoul
Niemand een antwoord?

Raoul misschien moet je even de term git nader verklaren. En wil je met een MySQL database gaan werken?
Dan zou je misschien met phpMyAdmin een backup kunnen maken van de structuur en deze op de server 'terugzetten'.
Wijzigingen aan de structuur van een database aanbrengen kan er voor zorgen dat er gegevens verloren gaan, maak dan dus ten alle tijden een backup van de database voordat je dat gaat doen.

Frank
Frank hartelijk bedankt voor je reactie. Ik kan wel backups nemen via phpMyAdmin maar heb jij dan een idee hoe ik enkel mijn tabellen bijwerk?
- Raoul - op 16/10/2012 21:26:56

Frank hartelijk bedankt voor je reactie. Ik kan wel backups nemen via phpMyAdmin maar heb jij dan een idee hoe ik enkel mijn tabellen bijwerk?


Je bedoelt dan de structuur van de tabellen toch?

Het kan allemaal met query's en ook vanuit een batchbestand.

Zoals bijvoorbeeld
<?php ALTER TABLE `test` CHANGE `date` `dates` DATE ?>
om de naam van een veld te veranderen

en
<?php ALTER TABLE `test` ADD `newfield` VARCHAR( 30 ) NOT NULL ; ?>

om een veld toe te voegen

[size=xsmall]Toevoeging op 16/10/2012 21:56:52:[/size]

echter om dat geheel automatisch te doen lijkt me lastig maar dit zal toch geen dagelijks werk worden?
Er moet hier zeker een goede methode voor zijn, hoe zouden andere websites het doen dan?
Zelf doe ik het zo dat ik vanaf het begin van het change-traject mijn wijzigingen bijhoud in alter-scripts.
Zoiets noemen we migrations. Als je Doctrine2 gebruikt heeft die een standaard versioning system (migrations layer) ingebouwd: http://docs.doctrine-project.org/projects/doctrine-migrations/en/latest/index.html

Ook Propel2 heeft een migration layer: https://github.com/propelorm/propelorm.github.com/blob/master/documentation/10-migrations.markdown

Maar je kunt er natuurlijk ook zelf eentje bouwen.

Je moet dit zien als een soort GIT voor je databases, GIT is voor de bestanden en niet voor de database dus daar heb je weer een andere tool voor. Je zou ze aan elkaar kunnen koppelen, dat als je git update runt je de migrations uitvoert en de bestanden pushed naar de remote repo ofzo.
Zelf een migration systeem maken, hoooo, dat gaat mijn petje te boven :P
Werk met Yii, even kijken of daarvoor een migration script bestaat.
Dit wordt wel moeilijk om die migrations door te voeren op een shared hosting

Reageren