Migration Bug auf höhere Version

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
Gast234254
Gesperrt
Beiträge: 1999
Registriert: 08.02.2009 22:58

Migration Bug auf höhere Version

Beitrag von Gast234254 »

Bei meiner Imprint Extension möchte ich die Migration zu Version 1.0.4 tätigen. Funktioniert aber nicht. Das Update zu Version 1.0.1, 1.0.2 und 1.0.3 funktioniert. Bei einer Neuinstallation wird 1.0.4 als Versionsnummer in die Datenbank eingetragen und die Änderung von value (vchar255 zu vchar500) funktioniert auch. Nur ein Update von 1.0.3 zu 1.0.4 schlägt fehl. Die Versionsnummer wird nicht aktualisiert und die Änderungen von value wird auch nicht getätigt.
Im root migration sind noch folgende Dateien
  • v_1_0_0.php
  • v_1_0_1.php
  • v_1_0_2.php
  • v_1_0_3.php
Was ist hier falsch?
migration/v_1_0_4.php

Code: Alles auswählen

/**
*
* @package wintstar Imprint Extension
* @copyright (c) 2014 wintstar
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

namespace wintstar\imprint\migrations;

class v_1_0_4 extends \phpbb\db\migration\migration
{
	public function effectively_installed()
	{
		return isset($this->config['imprint_version']) && version_compare($this->config[' imprint_version'], '1.0.4', '>=');
	}

	static public function depends_on()
	{
			return array('\wintstar\imprint\migration\v_1_0_3');
	}

	public function update_data()
	{
		return array(
		// Set the current version
		array('config.update',  array('imprint_version', '1.0.4')),
	);
}

public function update_schema()
{
		$sql = 'ALTER TABLE ' . $this->table_prefix . 'imprint
		 MODIFY value varchar(500)';
		$this->sql_query($sql);
	}
}
Wenn ich diesen Block weglasse, geht es auch nicht

Code: Alles auswählen

public function update_schema()
{
		$sql = 'ALTER TABLE ' . $this->table_prefix . 'imprint
		 MODIFY value varchar(500)';
		$this->sql_query($sql);
	}
Auch nur ein Update auf Version 1.0.4 schlägt fehl.
Benutzeravatar
tas2580
Ehemaliges Teammitglied
Beiträge: 3029
Registriert: 01.07.2004 05:42
Wohnort: /home/tas2580
Kontaktdaten:

Re: Migration Bug auf höhere Version

Beitrag von tas2580 »

Code: Alles auswählen

MODIFY value varchar(500)
Welche MySQL Version benutzt du? Bis zur Version 5.0 ? geht nur varchar(255), wenn du mehr willst musst du mediumtext oder text benutzen.

Gruß Tobi
Heute ist ein guter Tag um dein Forum zu testen.
Ehemaliger Benutzername: [BTK] Tobi
Gast234254
Gesperrt
Beiträge: 1999
Registriert: 08.02.2009 22:58

Re: Migration Bug auf höhere Version

Beitrag von Gast234254 »

Danke Tobi. MySQL-Version 5.5.37.

Aber auch wenn ich die Änderung von value weglasse, aktualisiert es nicht zu Version 1.0.4. Als Neuinstallation funktioniert die Änderung von value und der Eintrag der Version 1.0.4 .
Benutzeravatar
Elsensee
Ehemaliges Teammitglied
Beiträge: 832
Registriert: 19.05.2010 15:14
Wohnort: Hamburg
Kontaktdaten:

Re: Migration Bug auf höhere Version

Beitrag von Elsensee »

Mal abgesehen von diesem Post über das Ändern von Spalten in Tabellen, :wink: hast du in der Funktion effectively_installed() ein Leerzeichen zu viel bei $this->config[' imprint_version'].

Warum es dann aber bloß bei der Installation funtkioniert, weiß ich auch nicht. :-?
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: Migration Bug auf höhere Version

Beitrag von Gast234254 »

Auch hier Danke an Elsensee. Der Bug mit dem Leerzeichen fiel mir nicht auf. Das merkwürdige, auf meinem Linux-Server funktioniert das Update. Aber auf xampp-localhost (Windows) nicht.

XAMPP 1.8.3
PHP Version 5.5.15
MySQL-Version 5.6.20

Linux-Server
PHP Version 5.5.18
MySQL-Version 5.5.40

Verstehe ich irgendwie nicht :-? Ein Bug von phpBB 3.1.* oder Serverkonfiguration oder ???
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: Migration Bug auf höhere Version

Beitrag von gn#36 »

Mich irritiert gerade $this->sql_query($sql);. Ist die Klasse von der DBAL Klasse abgeleitet?
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.
Benutzeravatar
Elsensee
Ehemaliges Teammitglied
Beiträge: 832
Registriert: 19.05.2010 15:14
Wohnort: Hamburg
Kontaktdaten:

Re: Migration Bug auf höhere Version

Beitrag von Elsensee »

Nein, ist sie nicht, aber die Klasse phpbb\db\migration\migration implementiert diese als Wrapper, weil... is' halt so. :-?

Es wird halt verhindert, dass ein General Error ausgelöst wird. Was dann mit den Fehlern passiert, weiß ich nicht. Auf jeden Fall werden sie in einem Array gespeichert...
Vielleicht verlangen die Entwickler von Extension-Autoren, selbst diese Fehler auszugeben, aber ich weiß es nicht. (und auch nicht wie, denn echo soll man ja nicht verwenden)
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: Migration Bug auf höhere Version

Beitrag von Gast234254 »

Auf jeden Fall werden sie in einem Array gespeichert...
...selbst diese Fehler auszugeben
Aber wie bekomme ich das als Entwickler ausgegeben? Müsste dann ja im Fehlerprotokoll gespeichert sein, oder?
Benutzeravatar
Elsensee
Ehemaliges Teammitglied
Beiträge: 832
Registriert: 19.05.2010 15:14
Wohnort: Hamburg
Kontaktdaten:

Re: Migration Bug auf höhere Version

Beitrag von Elsensee »

Wie gesagt - ich weiß nicht genau, wie das gedacht ist, aber zumindest kannst von deiner Migration aus auf das Array $this->errors zugreifen, das wie folgt aufgebaut ist:

Code: Alles auswählen

$errors = array(
    1 => array(
        'sql'     => SQL,
        'code'    => SQL_ERROR,
    ),
    2 => array(
        'sql'     => SQL,
        'code'    => SQL_ERROR,
    ),
); 
Da du von einer Migration sonst bloß noch Zugriff auf das $config-Objekt, das $db-Objekt, ein $db_tools-Objekt, den Tabellenpräfix, den phpBB Root Path, die php_ext und die SQL-Querys hast (allerdings nur die, die über $this->sql_query() gemacht worden sind) weiß ich nicht genau, was man nun mit den Fehlern machen soll... :roll:
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: Migration Bug auf höhere Version

Beitrag von Gast234254 »

Ich habe mir das näher angesehen. Aber durchblicken tue ich kaum.
Antworten

Zurück zu „Extension Bastelstube“