Tabelle bei Update löschen

In diesem Forum gibt es Starthilfe zum neuen Extension-System von phpBB 3.1/3.2. Fragen zur Entwicklung von Extensions und zur Konvertierung von phpBB 3.0.x MODs sind ebenfalls willkommen.
Antworten
Walter91
Mitglied
Beiträge: 108
Registriert: 16.02.2012 08:28

Tabelle bei Update löschen

Beitrag von Walter91 »

Ich versuche mich an einer eigenen Extension. Erstellen von einer Tabelle bekomme ich hin.
Mit welchen Befehl kann ich eine vorhandene selbst erstellte Tabelle in ext/walter91/migrations/ wieder löschen?
Ich finde leider keine Doku dazu.
Benutzeravatar
Talk19zehn
Ehemaliges Teammitglied
Beiträge: 4917
Registriert: 08.06.2009 12:03
Kontaktdaten:

Re: Tabelle bei Update löschen

Beitrag von Talk19zehn »

Hi, hilft dir jenes Thema in Details:
viewtopic.php?p=1342027#p1342027
Und/oder
viewtopic.php?f=140&t=233275

Bin aber nicht Up-to-date hinsichtlich deiner angesprochen Thematik, die relativ umfangreich ist/sein kann.

Grüße
Beste Grüße
phpBB3 Designs: Stylearea Ongray-Designs
Walter91
Mitglied
Beiträge: 108
Registriert: 16.02.2012 08:28

Re: Tabelle bei Update löschen

Beitrag von Walter91 »

Erst mal Dank für deine Antwort. Den Beitrag von gn36 habe ich auch schon mal durchgewühlt aber nichts passendes gefunden.
Das einfügen einer Tabelle mache ich so.

Code: Alles auswählen

public function update_schema()
    {
        return array(
            'add_tables' => array(
                $this->table_prefix . 'testtable'   => array(
                    'COLUMNS' => array(
                        'testtable'                    => array('TEXT',''),
                        'testtable_bbcode_uid'        => array('VCHAR:8', ''),    
                        'testtable_bbcode_bitfield'    => array('VCHAR:255', ''),    
                        'testtable_bbcode_options'    => array('INT:11', '7'),    
                    ),                    
                ),
            ),
        );
    }
Aber mit welchen Befehl lösche ich die wieder wenn ich die zum Beispiel ändern oder ganz löschen will?
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: Tabelle bei Update löschen

Beitrag von gn#36 »

das geht ziemlich ähnlich (ich hoffe ich habe mich auf die schnelle nicht vertippt):

Code: Alles auswählen

public function revert_schema()
{
    return array(
        //Tabellen entfernen
        'drop_tables' => array('tabellenname1', 'tabellenname2'),
        // Spalten entfernen
        'drop_columns' => array(
            'tabellenname' => array(
                'spaltenname',
            ),
        ),
        // Neue Tabellenspalten
        'add_columns' => array(
            'tabellenname' => array(
                'spaltenname' => array('eigenschaften'),
            ),
        ),
        // Tabellenspalten ändern
        'change_columns' => array(
            'tabellenname' => array(
                'spaltenname' => array('neue eigenschaften'),
            ),
        ),
    ),
} 
Die Befehle können alle jeweils sowohl in der revert_schema, als auch in der update_schema Methode verwendet werden.
Siehe auch https://wiki.phpbb.com/Migrations/Schema_Changes

Du kannst auch einfach einen Blick in phpBBs Migrationen werfen, wie das da realisiert ist. Die findest du unter phpbb/db/migration/data. Es gibt auch ein paar Protoypklassen, die du für spezielle Aktionen in der Migration als Basis nehmen kannst. Zum Beispiel die container_aware_migration.php in phpbb/db/migration/, welche dir den Klassencontainer auch in der Migration zur Verfügung stellt (so dass du z.B. spezielle Klassen deiner Erweiterung oder phpBB Standardklassen darüber laden kannst), oder eine mit der du sehr leicht neue benutzerdefinierte Profilfelder anlegen kannst.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Walter91
Mitglied
Beiträge: 108
Registriert: 16.02.2012 08:28

Re: Tabelle bei Update löschen

Beitrag von Walter91 »

Erst mal Dank für deine Mühe.Scheint doch etwas komplizierter zu sein.
Ich hatte eigentlich gedacht es gibt einen einfachen Befehl und Tabellenname, dann ist es weg.In der Wiki finde ich erst mal nichts dazu.
Ich muss am WE das erstmal ausprobieren.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: Tabelle bei Update löschen

Beitrag von gn#36 »

Das stimmt ja auch: Ein Befehl und die Tabelle ist weg. Schau dir meine Kommentare an - drop_tables entfernt alle im array angegebenen Tabellen.

Ist also genau ein Befehl zum Löschen, den du in der Methode revert_schema zurückliefern musst.

Ich habe lediglich versucht alle möglichen Fälle kompakt zusammen darzustellen, damit das wenn irgendwer das gleiche Problem hat auch bei Fällen wie "Spalte wieder entfernen" oder "Spalte (wieder) hinzufügen" hilft.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Walter91
Mitglied
Beiträge: 108
Registriert: 16.02.2012 08:28

Re: Tabelle bei Update löschen

Beitrag von Walter91 »

Hallo gn36. Hab jetzt alles durchprobiert. Dank für deine Anleitung. funktioniert alles.
Antworten

Zurück zu „Extension Bastelstube“