Update von OXID EE 6.0.0 auf OXID EE 6.0.4

Ich versuche gerade lokal meinen Oxid EE 6.0.0 Shop auf die aktuelle 6.0.4 per composer zu aktualisieren (nach https://docs.oxid-esales.com/eshop/de/6.0/installation/update-installation/ab-600-aktualisieren.html).

Die composer.json sieht derzeit so aus:

{
  "name": "oxid-esales/oxideshop-project",
  "type": "project",
  "description": "This file should be used as an OXID eShop project root composer.json file. Entries provided here intended to be examples and could be changed to your specific needs.",
  "license": [
"GPL-3.0",
"proprietary"
  ],
  "minimum-stability": "stable",
  "require": {
"oxid-esales/oxideshop-metapackage-ee": "^v6.0.0"
  },
  "require-dev": {
"oxid-esales/testing-library": "^v3.2.0",
"oxid-esales/coding-standards": "^v3.0.3",
"incenteev/composer-parameter-handler": "~v2.0",
"oxid-esales/oxideshop-ide-helper": "^v3.0.0",
"oxid-esales/azure-theme": "^v1.4.1"
  },
  "autoload": {
"psr-4": {
	// ... gekürzt
}
  },
  "autoload-dev": {
"psr-4": {
  "OxidEsales\\EshopCommunity\\Tests\\": "./vendor/oxid-esales/oxideshop-ce/tests"
}
  },
  "scripts": {
"post-install-cmd": [
  "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
  "@oe:ide-helper:generate"
],
"post-update-cmd": [
  "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
  "@oe:ide-helper:generate"
],
"oe:ide-helper:generate": [
  "if [ -f ./vendor/bin/oe-eshop-ide_helper ]; then oe-eshop-ide_helper; fi"
]
  },
  "config": {
"preferred-install": {
  "*": "dist"
}
  },
  "extra": {
"incenteev-parameters": {
  "file": "test_config.yml",
  "dist-file": "vendor/oxid-esales/testing-library/test_config.yml.dist",
  "parameter-key": "mandatory_parameters",
  "env-map": {
    "shop_path": "SHOP_PATH",
    "shop_tests_path": "SHOP_TESTS_PATH",
    "partial_module_paths": "PARTIAL_MODULE_PATHS"
  }
}
  }
}

Geändert wurde nun die Zeile

"oxid-esales/oxideshop-metapackage-ee": "^v6.0.0"

zu

"oxid-esales/oxideshop-metapackage-ee": "v6.0.4"

Führe ich nun aber den Befehl composer update --no-plugins --no-scripts --no-dev aus, erhalte ich folgende Fehlermeldung:

$ composer update --no-plugins --no-scripts --no-dev
You are running composer with xdebug enabled. This has a major impact on runtime performance. See https://getcomposer.org/xdebug
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
- The requested package oxid-esales/oxideshop-metapackage-ee v6.0.4 exists as oxid-esales/oxideshop-metapackage-ee[v6.0.0] but these are rejected by your constraint.

Running update with --no-dev does not mean require-dev is ignored, it just means the packages will not be installed. If dev requirements are blocking the update you have to resolve those problems.

Wo liegt hier das Problem? Der einzige Unterschied, den ich in der Anleitung sehe, ist das “ce”, anstatt “ee” - wir nutzen aber EE und kein CE…?

Ho!

versuch mal require & require-dev mit folgendem zu ersetzen:

"require": {
    "oxid-esales/oxideshop-metapackage-ee": "^v6"
},
"require-dev": {
    "oxid-esales/testing-library": "^v5.0.3",
    "oxid-esales/coding-standards": "^v3.0.5",
    "incenteev/composer-parameter-handler": "~v2.0",
    "oxid-esales/oxideshop-ide-helper": "^v3.1.1",
    "oxid-esales/azure-theme": "^v1.4.1"
},

Gibts dann kein Update auf EE 6.1.x?
Wir wollen nämlich vorerst auf 6.0.4 bleiben!

Okay, dann evt. ^v6.0 ich glaube dann geht es nicht auf v6.1

Oder versuch einfach nur den require-dev Block zu ersetzen

Fehlt da nicht der “repositories”-Eintrag? https://github.com/OXID-eSales/oxideshop_project/blob/b-6.0-ee/composer.json

Danke, das hat jetzt soweit funktioniert.
Der Admin-Bereich zeigt nun Version 6.0.4 an.

vendor/bin/oe-eshop-db_migrate migrations:migrate

funktioniert aber nicht so ganz.

 -> ALTER TABLE oxshops ADD COLUMN `OXSERIAL` varchar(255) NOT NULL default '' COMMENT 'Shop license number'
Migration 20160919103142_ce_to_pe failed during Execution. Error An exception occurred while executing 'ALTER TABLE oxshops ADD COLUMN `OXSERIAL` varchar(255) NOT NULL default '' COMMENT 'Shop license number'':

SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name 'OXSERIAL'

Kommentiere ich die Zeile aus, gibts woanders ein Fehler:

Migration 20160919103142_pe_to_ee failed during Execution. Error An exception occurred while executing 'ALTER TABLE `oxadminlog`
            ADD COLUMN `OXSHOPID` int(11) NOT NULL default '1' COMMENT 'Shop id (oxshops)',
            ADD COLUMN `OXSESSID` char(40) character set latin1 collate latin1_general_ci NOT NULL COMMENT 'Session id',
            ADD COLUMN `OXCLASS` varchar(50) NOT NULL COMMENT 'Logged class name',
            ADD COLUMN `OXFNC` varchar(30)NOT NULL COMMENT 'Logged function name',
            ADD COLUMN `OXITMID` char(32) character set latin1 collate latin1_general_ci NOT NULL COMMENT 'Item id',
            ADD COLUMN `OXPARAM` text NOT NULL COMMENT 'Logged parameters',
            ADD KEY `OXITMID` (`OXITMID`),
            ADD KEY `OXUSERID` (`OXUSERID`);
        ':

SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name 'OXSHOPID'

Kann man beim migrieren etwaige Fehler irgendwie ignorieren?
Ich weiß nicht, wieso die Spalten schon existieren, aber

                Oxid Migrations EE


Migrating up to 20190319161150 from 0

sieht auch irgendwie komisch aus.

PE_TO_EE, Ich hatte das gleiche bei einer PE, da wollte er von CE auf PE updaten, obwohl das schon immer eine PE war. Wenn Migrations nicht durchlaufen will er die das nächste Mal wieder ausführen, also habe ich bei jedem Statement geschaut ob das notwendig ist, und habe die Kommandos alle in der Migrationsdatei auskommentiert.

Da sind offenbar noch nie Migrations ausgeführt worden, daher “from 0”.

Oke, danke.
Habs jetzt so gelöst, dass ich in Doctrine\DBAL\Migrations\Version Zeile 356 (throw $e;) auskommentiert habe.
Dadurch werden die Fehler ausgegeben aber die Migration wird nicht unterbrochen.

Jetzt noch eine andere Frage: Wir haben das Update hauptsächlich wegen kleinerer Fehler durchgeführt, unter anderem diesem https://bugs.oxid-esales.com/view.php?id=4924#bugnotes hier.

Leider besteht der auch noch mit OXID EE 6.0.4 und dem Flow Theme in Version 3.0.0.
Laut Bugtracker wurde er aber bereits in Version 6.0.3 behoben. Wir nutzen war ein Child-Theme des Flow Themes, aber weder mit dem noch mit dem original Flow Theme ist der Bug behoben.

Hast du da noch eine Idee?

Das Flow-Theme bleibt auf 3.0.0 bei 6.0, du kannst das Flow-Theme aber so updaten:

"require": {
  "oxid-esales/oxideshop-metapackage-ee": "v6.0.4",
  "oxid-esales/flow-theme": "v3.0.1 as v3.0.0"
},

Oder eben die Version die du haben willst. Der Bug sollte in 3.0.1 gefixt sein.