Tabelleneinträge umbenennen. (erledigt)

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
Benutzeravatar
chris1278
Mitglied
Beiträge: 3535
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Tabelleneinträge umbenennen. (erledigt)

Beitrag von chris1278 »

Folgendes. Ich habe eine Extension geschrieben und würde dafür gerne einige angelegte Tabelleneinträge umbenennen mittels der Migrationsdatei.


Um die tabellen in meiner Extension anzulegen, nutze ich folgenden Syntax:

Code: Alles auswählen

			array('config.add', array('hier_als_beispiel', 0)),

Und zwar würde dieser Syntax so wie er dort steht in der Tabelle Config dein Eintrag hier_als_beispiel erzeugen mit wert 0.

Wenn ich diesen Eintrag behalten will aber lediglich denn Namen ändern will wie muss der Syntax dann aussehen.

Ich hatte schon mal an so etwas gedacht:

Code: Alles auswählen

array('config.rename', array('hier_als_beispiel'','hier_als_beispiel'_nr_2')),
Aber das gibt dann nur eine Fehlermeldung.
Benutzeravatar
BNa
Valued Contributor
Beiträge: 3169
Registriert: 12.04.2010 23:51
Kontaktdaten:

Re: Tabelleneinträge umbenennen.

Beitrag von BNa »

Dann bitten wir mal um die Fehlermeldung (auch ein Screenshot ist genehm) :grin:
Benutzeravatar
chris1278
Mitglied
Beiträge: 3535
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: Tabelleneinträge umbenennen.

Beitrag von chris1278 »

Ok hier ein Screenshot der Fehlermeldung:

http://prntscr.com/qd5vas


Das ist das Array was ich nutze wo das passiert:

Code: Alles auswählen

class v_1_0_3 extends \phpbb\db\migration\migration
{
	static public function depends_on()
	{
		return array('\chris1278\social\migrations\v_1_0_2');
	}

	public function update_data()
	{
		return array(
					
			array('config.rename', array('social_facebook_url', 'social_test_url')),
			

			
		);
	}
}
Und zwar versuche ich die Extension für die Social Media Geschichte von mir etwas anzupassen. Dazu wollte ich einige Tabellen Einträge umbenennen. Wobei die Einträge aber erhalten bleiben sollten. Daher dachte ich, das ich es mit umbenennen probieren sollte. Allerdings bin ich was sql angeht nicht so bewandert.
Benutzeravatar
LukeWCS
Supporter
Supporter
Beiträge: 2125
Registriert: 15.12.2014 10:19
Kontaktdaten:

Re: Tabelleneinträge umbenennen.

Beitrag von LukeWCS »

Hey Chris

Wäre das hier nicht eher in der Bastelstube passender?

Nur auf die Schnelle (Mittagspause):

Da es ja ein Beispiel war, wie du selber geschrieben hast, ist die Fehlermeldung nicht verwunderlich, denn die Methode config.rename gibt es nicht. Es gibt config.add, config.update und config.remove, siehe entsprechende Doku-Seite dazu.

Was du erreichen willst, kannst du mit einer Kombination aus config.add und config.remove lösen. Zuerst legst du mit .add die umbenannte Variable quasi neu an, mit dem Wert der alten Variable. Dann entfernst du mit config.remove die alte Variable. Wie du einen Wert übernehmen kannst, siehst z.B. in meinem LFWWH2 in der Datei v_2_0_0.php. Dort übernehme ich zwar die Daten von LFWWH1, aber das ist in dem Fall irrelevant, weil es das gleiche Prinzip ist, was du auch brauchst.

Und denke daran ein Update-Merkmal festzulegen, damit der Migrator weiss, welches Update schon ausgeführt wurde und welches nicht. Hierfür bietet sich schlicht die Ext Version an, dann bleibt das auch alles nachvollziehbar. Möglich wäre z.B. auch eine fortlaufende Nummer, quasi eine Seriennummer. Das finde ich aber eher suboptimal und wenig intuitiv. Schau dir dazu einfach mal LFWWH1 an, da habe ich etliche Migrations-Schritte. Oder jede beliebige andere Erweiterung, bei der es Migrationen gibt.
Möge das Backup mit dir sein. Immer.

Erweiterungen - Infos zur artgerechten Haltung
phpBB Ext Check - Analysesystem für phpBB Erweiterungen (Entwickler Werkzeug)
Benutzeravatar
chris1278
Mitglied
Beiträge: 3535
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: Tabelleneinträge umbenennen.

Beitrag von chris1278 »

Luke das ist ja bekannt. Bei SQL ist auch ein Rename möglich, ich wusste nur nicht das dies für die migrations Datei nicht umsetzbar ist. Und die migrations Datei Namen sind gleich der Version. Werde dann für die umändernung eine zwischendatei anlegen.
Verschoben von Extension Support nach Extension Bastelstube am 20.12.2019 17:18 durch Kirk

Benutzeravatar
chris1278
Mitglied
Beiträge: 3535
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: Tabelleneinträge umbenennen.

Beitrag von chris1278 »

Da ich den Startbeitrag leider nicht mehr bearbeiten kann bitte ich einen Moderator diesen als erledigt zu markieren.

Die Lösung war das so umzusetzen wie Luke es Vorgeschlagen hat. Das hat funktioniert.
Antworten

Zurück zu „Extension Bastelstube“