Home-Produkte-Testarea-Kontakt-Datenschutz-Aktualisiert: 06-Jun-2011
< Voriger Tag   Nächster Tag >

Montag, 06. Juni 2011

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.

Die heutige Version des Frameworks.

[Direktlink]

< Voriger Tag   Nächster Tag >

  RSS V0.91

<Juni 2011 >
  0102030405
06070809101112
13141516171819
20212223242526
27282930   

Home-Produkte-Testarea-Kontakt-Datenschutz-Aktualisiert: 06-Jun-2011
(C) 2000-2018 by Sven Drieling