Extension Updates

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.
Benutzeravatar
D@ve
Ehemaliges Teammitglied
Beiträge: 3842
Registriert: 28.08.2002 19:33
Wohnort: Bretzfeld
Kontaktdaten:

Extension Updates

Beitrag von D@ve »

Wie genau funktioniert das mit den Updates.

Man legt ja im Migrations Ordner eine Klasse release_x_x_x an.

a)
Macht es da Sinn, für jedes Release eine neue Datei anzulegen? Ich hab die Datei/Klasse bisher mit den Releases immer nur umbenannt, weil sich in der Migration bzw. in der Datenbank nix geändert hat.

b)
verstehe ich das richtig, dass wenn ich in der static public function depends_on() Methode eine andere Migration File angebe, dass diese dann zuerst ausgeführt wird?

c)
Wie kann ich Datenbankaufrufe machen? Wie kann ich zum Beispiel config variablen ändern. bzw. wie kann ich auf die bestehende config zugreifen. Das klappt irgendwie nicht. Angenommen ich habe im alten Release eine variable $config['my_ext_abc'] die will ich jetzt in $config['my_ext_xyz'] umbenennen. Der Wert soll bei einem Update natürlich erhalten bleiben. Wie mache ich das?

d)
Wie würde ein Update praktisch aussehen? Überschreibt man einfach die Alte Extension und phpBB erkennt das dann wenn man Manage Extensions im ACP aufruft und führt die neuen migrations dann aus?

Gruß, Dave
There are only 10 types of people in the world: Those who understand binary, and those who don't
Benutzeravatar
nickvergessen
Ehrenadmin
Beiträge: 11559
Registriert: 09.10.2006 21:56
Wohnort: Stuttgart, Germany
Kontaktdaten:

Re: Extension Updates

Beitrag von nickvergessen »

D@ve hat geschrieben:a)
Macht es da Sinn, für jedes Release eine neue Datei anzulegen? Ich hab die Datei/Klasse bisher mit den Releases immer nur umbenannt, weil sich in der Migration bzw. in der Datenbank nix geändert hat.
IMMER eine neue Datei nehmen. Wenn eine alte fehlt könnte es zu Fehlern kommen.
Macht phpBB an sich auch so: https://github.com/phpbb/phpbb/blob/dev ... x/v312.php
D@ve hat geschrieben:b)
verstehe ich das richtig, dass wenn ich in der static public function depends_on() Methode eine andere Migration File angebe, dass diese dann zuerst ausgeführt wird?
Richtig.
D@ve hat geschrieben:c)
Wie kann ich Datenbankaufrufe machen? Wie kann ich zum Beispiel config variablen ändern. bzw. wie kann ich auf die bestehende config zugreifen. Das klappt irgendwie nicht. Angenommen ich habe im alten Release eine variable $config['my_ext_abc'] die will ich jetzt in $config['my_ext_xyz'] umbenennen. Der Wert soll bei einem Update natürlich erhalten bleiben. Wie mache ich das?
https://wiki.phpbb.com/Migrations/Tools/Config
D@ve hat geschrieben:d)
Wie würde ein Update praktisch aussehen? Überschreibt man einfach die Alte Extension und phpBB erkennt das dann wenn man Manage Extensions im ACP aufruft und führt die neuen migrations dann aus?
Man löscht die alten Dateien und lädt die neuen hoch, danach geht man in den Extensionbereich im ACP, deaktiviert die Extension und aktiviert sie dann erneut.
Im letzten Schritt werden dabei die Datenbankänderungen ausgeführt.
kein Support per PN
Benutzeravatar
Crizzo
Administrator
Administrator
Beiträge: 11943
Registriert: 19.05.2005 21:45
Kontaktdaten:

Re: Extension Updates

Beitrag von Crizzo »

Man löscht die alten Extension Dateien zuerst per FTP und deaktiviert die Extension dann? Wieso denn das? Ich dachte gelöscht wird erst nach dem Deaktivieren.
Benutzeravatar
oxpus
Ehemaliges Teammitglied
Beiträge: 5386
Registriert: 03.02.2003 12:33
Wohnort: Bad Wildungen
Kontaktdaten:

Re: Extension Updates

Beitrag von oxpus »

Löschen vor dem Deaktivieren kann das Forum lahmlegen. Also immer erst deaktivieren, dann löschen.
Grüße
OXPUS
Kein Support bei unaufgeforderten PNs, E-Mails oder auf anderem Weg!!
Benutzeravatar
D@ve
Ehemaliges Teammitglied
Beiträge: 3842
Registriert: 28.08.2002 19:33
Wohnort: Bretzfeld
Kontaktdaten:

Re: Extension Updates

Beitrag von D@ve »

IMMER eine neue Datei nehmen. Wenn eine alte fehlt könnte es zu Fehlern kommen.
ok... werde ich dann ab der ersten Final machen...

Man löscht die alten Dateien und lädt die neuen hoch, danach geht man in den Extensionbereich im ACP, deaktiviert die Extension und aktiviert sie dann erneut.
Im letzten Schritt werden dabei die Datenbankänderungen ausgeführt.
Ich würde aber auch folgende Reihenfolge vorschlagen:

1) Alt deaktivieren
2) Alt löschen
3) Upload Neu
4) Aktivieren Neu

Also gibt es da keine richtige Update-Funktion für die User... Das ganze klingt seeeeehr fehleranfällig...

Ich sehe schon die Support-Anfragen, wo die Leute versehentlich erst gelöscht haben und alte Versionen nicht mehr sauber entfernt kriegen. :ugeek:
Wenn WIR da schon durcheinander kommen...

Gruß, Dave
There are only 10 types of people in the world: Those who understand binary, and those who don't
Benutzeravatar
Talk19zehn
Ehemaliges Teammitglied
Beiträge: 4909
Registriert: 08.06.2009 12:03
Kontaktdaten:

Re: Extension Updates

Beitrag von Talk19zehn »

Hi, stimmt ist doch recht verwirrend, wenn ich die Frage und Antwort auf ein "Update" verfolge:
nickvergessen hat geschrieben:Man löscht die alten Dateien und lädt die neuen hoch, danach geht man in den Extensionbereich im ACP, deaktiviert die Extension und aktiviert sie dann erneut.
ACP schreibt (Anpassen/Erweiterungen verwalten): Version 3.1.2 (Stand 26.11.2014)
Eine Erweiterung aktualisieren
  • Deaktiviere die Erweiterung
    Lösche die Dateien der Erweiterung aus dem Dateisystem
    Lade die neuen Dateien hoch
    Aktiviere die Erweiterung


Eine Erweiterung komplett aus dem Board entfernen

  • Deaktiviere die Erweiterung
    Lösche die Arbeitsdaten der Erweiterung
    Lösche die Dateien der Erweiterung aus dem Dateisystem
Dateisystem = ich löschte sodann händisch in der Datenbank und zusätzlich den Twig-Ordner bevor ich Caches bereinigte. Na hoffentlich ist mir da nun nichts "angebrannt". :-?
Beste Grüße
phpBB3 Designs: Stylearea Ongray-Designs
Benutzeravatar
Wolfsblvt
Mitglied
Beiträge: 29
Registriert: 26.10.2014 22:15

Re: Extension Updates

Beitrag von Wolfsblvt »

D@ve hat geschrieben:Wie kann ich Datenbankaufrufe machen? Wie kann ich zum Beispiel config variablen ändern. bzw. wie kann ich auf die bestehende config zugreifen. Das klappt irgendwie nicht. Angenommen ich habe im alten Release eine variable $config['my_ext_abc'] die will ich jetzt in $config['my_ext_xyz'] umbenennen. Der Wert soll bei einem Update natürlich erhalten bleiben. Wie mache ich das?
In den Migration-Files solltest du nicht für die Config-Klasse gehen, sondern über das Datenbankschema.
Wenn du die bisher gesetzte Variable übernehmen willst, wird es etwas schwieriger. Am einfachsten wäre eine Custom-Methode, in der du die Einstellung einfach zwischenspeicherst, dann löschst und die neue Variable anlegst.
Oder du schreibst eine einfache Query, die den config_name anpasst.
Lesser, greater, middling, it's all the same. Proportions are negotiated, boundaries blurred.
I'm not a pious hermit, I haven't done only good in my life. But if I'm to choose between one evil and another,
then I prefer not to choose at all.
― Andrzej Sapkowski, The Last Wish
Benutzeravatar
Elsensee
Ehemaliges Teammitglied
Beiträge: 832
Registriert: 19.05.2010 15:14
Wohnort: Hamburg
Kontaktdaten:

Re: Extension Updates

Beitrag von Elsensee »

Zum Release von phpBB 3.1.0 hat man solche Migrations auch aufgeteilt, wenn zum Beispiel Spalten gelöscht werden sollten, die Daten in den Spalten aber noch in andere sollten.
Da hat man in Part 1 die neuen Spalten angelegt und die Daten rüberkopiert und in Part 2 die alten Spalten gelöscht. :wink:
Posts mostly powered by GitHub and phpBB.de Cross-Reference

2015-03-20 - Never forget 8)
Gast234254
Gesperrt
Beiträge: 1999
Registriert: 08.02.2009 22:58

Re: Extension Updates

Beitrag von Gast234254 »

Wie kann ich bei einer bestehenden Tabelle eine Spalte ändern?
Und zwar

Code: Alles auswählen

						'name'				=> array('INT:2', 0),
						'value'				=> array('VCHAR:255', ''),
						'aktiv'				=> array('INT:1', 0),
ändern zu

Code: Alles auswählen

						'name'				=> array('INT:2', 0),
						'value'				=> array('VCHAR:500', ''),
						'aktiv'				=> array('INT:1', 0),
value soll auf 500 geändert werden ohne die vorhandenen Daten zu löschen.

Damit habe ich keinen Erfolg

Code: Alles auswählen

	public function update_schema()
	{
		return array(
			'change_value'		=> array(
				$this->table_prefix . 'foe'	=> array(
					'COLUMNS'		=> array(
						'value'				=> array('VCHAR:500', ''),
					),
				),
			),
		);
	}
HJW
Mitglied
Beiträge: 1291
Registriert: 20.04.2007 20:48
Wohnort: 45481 Mülheim an der Ruhr
Kontaktdaten:

Re: Extension Updates

Beitrag von HJW »

Da ich auch nichts gefunden habe, habe ich das so gelöst:

Code: Alles auswählen

	public function update_schema()
	{
        $sql = 'ALTER TABLE ' . $this->table_prefix . 'foe 
            MODIFY value varchar(500)';
        $this->sql_query($sql);
	}
Antworten

Zurück zu „Extension Bastelstube“