PHP: Framework - dbmigrate
dbmigrate gehört zu den Features die direkt von Ruby On Rails übernommen sind und hilft bei Änderungen am Datenbankschema.
Deklariert wird das Datenbankschema mit den Klassen in
/db/migrate/.
In der up-Methode von Version_1.php wird
rusertest mit CREATE TABLE ruserstest ... angelegt.
Ausgeführt wird dies mit
rubisco dbmigrate up
In der down-Methode steht der Programmcode, um die Veränderungen
von up() wieder rückgängig zu machen: DROP TABLE ruserstest. Ausgeführt mit
rubisco dbmigrate down
Version_2.php
kann nun leicht ein CREATE TABLE rarticletest ... hinzufügen.
Falls sich später herausstellt, dass das nicht wie gewünscht funktioniert. Wird mit
rubisco dbmigrate down
diese Änderung wieder zurückgenommen, Version_2.php
verbessert und mit rubisco dbmigrate up ist die
Datenbank wieder auf dem neuen Stand.
Die zweite Variante besteht darin auf rubisco dbmigrate down
zu verzichten und in Version_3.php zu verbessern.
Die erste Variante ist praktisch, wenn sich die Änderung nur auf dem eigenen Rechner befindet, um die Anzahl der Migration-Dateien gering zu halten. Die zweite Variante ist notwendig, wenn die Migration bereits von Dritten benutzt wird.
Eine neue Migration wird angelegt mit
rubisco create dbmigrate
MVCBase: injectCommon($this)
Die MVC-Basisklasse
ist im Konstruktur um
Application::getInstance()->injectCommon($this) erweitert.
Damit holen sich die Objekte nun selbst die app-, cfg-, log-, db-, ...-Daten,
so dass im eigenen Programmcode die Objekte unkompliziert mit $users = new UsersModel()
erzeugt werden, während in
Application
das Framework selbst die view-, model- und controller-Eigenschaften setzt.
