TYPO3 Plugin:

udg_phinx

UDG Phinx

Integriert das Tool Phinx https://phinx.org/ in das TYPO3 Backend.

In der Modul Konfiguration kann der Pfad zur phinx.yml angegeben werden. Dort sind nur die Angaben zu paths: und environments: default_migration_table relevant. Das Environement cms wird automatisch aus den aktuellen TYPO3 Datenbankeinstellungen erzeugt. Außerdem gibt es die Möglichkeit alle ausstehenden Änderungen an der Datenbank (aus dem Installtool kopiert) in einer Datei herunterzuladen um diese dann einfacher an die gewünschte Migration anpassen zu können.

Migrationen/Versionen

Versionen sind einzelne Klassen in Phinx die eine up/down Methode bereit stellen. Mit Hilfe dieser Methoden können Änderungen an der Datenbank konsistent über alle Systeme angewendet werden.

Die Migrationen/Versionen sind dann im Backend in einem eigenen Modul verfügbar. Neben migrate/rollback wird auch das gezielte up/down einer einzelnen Version unterstützt.

  • migrate wendet alle fehlenden Versionen bis einschließlich der gewünschten Version an
  • rollback entfernt alle angewendeten Versionen bis einschließlich der gewünschten Version
  • up wendet genau die gewünschte Version an
  • down entfernt die gewünschte Version

Zusätzlich gibt es noch ein Kommandozeilen Tool:

$ ./cli_dispatch.phpsh extbase udgphinx:status
 Status  Migration ID    Migration Name
-----------------------------------------
     up  20141127080000  Initial
     up  20141127085117  Gridelements
     up  20150112083000  BELayoutTevaOne
     up  20150225170434  PharmacyLookUp

Neben dem Status sind auch die Kommandos migrate/rollback/up/down verfügbar.

!Achtung Rollback ist hier allerdings, um konform mit der phinx semantik zu sein, ein Schritt zurück bis zum Stand vor der angegebenen Version!

Konventionen

Die einzelnen Klassen für die Versionen müssen einem vorgegebenen Namensschema folgen.

YYYYMMDDhhmmss_class_name_for_version.php

Die Klasse muss dann den Namen ClassNameForVersion haben.

Aus der Zeitangabe und der Benamung wird automatisch der Wert für die Properties Name und Version gebildet.

Beispiel

phinx.yml

paths:
    migrations: %%PHINX_CONFIG_DIR%%/db/migrations
    seeds: %%PHINX_CONFIG_DIR%%/db/seeds

environments:
    default_migration_table: phinxlog

Die Angabe %%PHINX_CONFIG_DIR%% ergibt einen Pfad relativ zur phinx.yml Datei.

20150225170434_pharmacy_look_up.php

<?php

use Phinx\Migration\AbstractMigration;

class PharmacyLookUp extends AbstractMigration
{
    /**
     * Change Method.
     *
     * More information on this method is available here:
     * http://docs.phinx.org/en/latest/migrations.html#the-change-method
     *
     * Uncomment this method if you would like to use it.
     *
    public function change()
    {
    }
    */

    /**
     * Migrate Up.
     */
    public function up()
    {
        if ($this->hasTable("tx_kfipharmacylookup_domain_model_pharmacy")) {
            $table = $this->table("tx_kfipharmacylookup_domain_model_pharmacy");
            if (!$table->hasColumn("lat")){
                $this->execute("ALTER TABLE tx_kfipharmacylookup_domain_model_pharmacy ADD lat varchar(45) default NULL;");
            }
        }
        if ($this->hasTable("tx_kfipharmacylookup_domain_model_pharmacy")) {
            $table = $this->table("tx_kfipharmacylookup_domain_model_pharmacy");
            if (!$table->hasColumn("lon")){
                $this->execute("ALTER TABLE tx_kfipharmacylookup_domain_model_pharmacy ADD lon varchar(45) default NULL;");
            }
        }
    }

    /**
     * Migrate Down.
     */
    public function down()
    {
        if ($this->hasTable("tx_kfipharmacylookup_domain_model_pharmacy")) {
            $table = $this->table("tx_kfipharmacylookup_domain_model_pharmacy");
            if ($table->hasColumn("lat")){
                $table->removeColumn("lat");
            }
        }

        if ($this->hasTable("tx_kfipharmacylookup_domain_model_pharmacy")) {
            $table = $this->table("tx_kfipharmacylookup_domain_model_pharmacy");
            if ($table->hasColumn("lon")){
                $table->removeColumn("lon");
            }
        }
    }
}

Hier kann man je nach eigener Vorstellung die Angaben zur Datenbankmigration machen.

Benötigen Sie schnelle Hilfe mit dieser Extension? Unser Team von erfahrenen TYPO3-Entwicklern löst Probleme unkompliziert und zum Stundensatz.

Verteilung:UDG_PHINX ist auf

0.01 % aller TYPO3 installiert.

  • 0.09 % aller TYPO3 8.7.x Installationen installiert

Aktualität:UDG_PHINX ist auf dem neusten Stand (v.unknown) bei

100 % aller TYPO3 Installationen

  • 0 % aller TYPO3 9.5.x Installationen
  • 0 % aller TYPO3 9.3.x Installationen
  • 0 % aller TYPO3 9.2.x Installationen
  • 0.09 % aller TYPO3 8.7.x Installationen
  • 0 % aller TYPO3 7.6.x Installationen
  • 0 % aller TYPO3 7.5.x Installationen
  • 0 % aller TYPO3 7.4.x Installationen
  • 0 % aller TYPO3 7.3.x Installationen
  • 0 % aller TYPO3 7.2.x Installationen
  • 0 % aller TYPO3 7.1.x Installationen
  • 0 % aller TYPO3 7.0.x Installationen
  • 0 % aller TYPO3 6.2.x Installationen
  • 0 % aller TYPO3 6.1.x Installationen
  • 0 % aller TYPO3 6.0.x Installationen
  • 0 % aller TYPO3 5.0.x Installationen
  • 0 % aller TYPO3 4.7.x Installationen
  • 0 % aller TYPO3 4.6.x Installationen
  • 0 % aller TYPO3 4.5.x Installationen
  • 0 % aller TYPO3 4.4.x Installationen
  • 0 % aller TYPO3 4.3.x Installationen
  • 0 % aller TYPO3 4.2.x Installationen
  • 0 % aller TYPO3 4.1.x Installationen
  • 0 % aller TYPO3 4.0.x Installationen
  • 0 % aller TYPO3 3.5.x Installationen

Gosign-Responsive Index: TYPO3 Installationen nutzen UDG_PHINX zu

  • 0 % wenn der Gosign-Responsive-Index zwischen 80 % und 100 % ist
  • 0 % wenn der Gosign-Responsive-Index zwischen 60 % und 80 % ist
  • 100 % wenn der Gosign-Responsive-Index zwischen 40 % und 60 % ist
  • 0 % wenn der Gosign-Responsive-Index zwischen 20 % und 40 % ist
  • 0 % wenn der Gosign-Responsive-Index zwischen 0 % und 20 % ist

Pagespeed: TYPO3 Installationen nutzen UDG_PHINX zu

  • 0 % wenn der Pagespeed zwischen 80 % und 100 % ist
  • 0 % wenn der Pagespeed zwischen 60 % und 80 % ist
  • 75 % wenn der Pagespeed zwischen 40 % und 60 % ist
  • 0 % wenn der Pagespeed zwischen 20 % und 40 % ist
  • 25 % wenn der Pagespeed zwischen 0 % und 20 % ist


Stichprobe n=36801 von Gosign gecrawlte TYPO3-Seiten mit den Top-Level-Domains <.de/.ch/.at>