Lösungsweg gesucht

Du hast ein Problem gefunden und weißt nicht genau wo es hinpasst...
Kopernikus
Beiträge: 390
Registriert: Fr 19. Okt 2012, 12:15

Lösungsweg gesucht

Beitrag von Kopernikus »

Wie in meinem letzten Posting beschrieben, möchte ich von meiner xtc 3.0.4 SP2.1 auf die aktuellste WEBS Version migrieren. Ein erster Durchlauf unter XAMPP hat schon mal hervorragend geklappt. Nun habe ich also alle Daten meines Shops in Webs integriert. Mein Problem ist nun folgendes:

Ich möchte Webs zunächst grafisch und technisch noch etwas aufpeppen. Erst dann soll der neue Shop für meine Kunden zur Verfügung stehen. Die gesamte Anpassung dürfte ca. in einer Woche zu erledigen sein. Mein Problem ist nun folgendes. Ich möchte meinen Kunden einen nahtlosen Übergang von meinem alten Shop zum Neuen ermöglichen. D.h. wenn einer heute um 14:00 Uhr ein Kundenkonto eröffnet und ich den neuen Shop am Montag in einer Woche aufschalte, soll dieser Kunde nicht vor verschlossenen Türen stehen. Konkret meine ich damit folgendes:

Durch die grafische Anpassung meines neuen Shops, müssen auch die Kategorien kompakter werden. Ich habe also anstatt 10 Hauptkategorien nur noch 5. Alleine dieser Eingriff hat Auswirkungen auf die DB. Da es nicht nur bei dieser Anpassung bleibt, kann ich am Montag in einer Woche nicht einfach nochmals die Migration durchführen um die aktuellsten Bestellungen und Kunden zu übernehmen. Das würde ja erneut alle meine Änderungen verwerfen.

Meine Frage ist also folgende. Gibt's eine Möglichkeit, nach einer Migration lediglich die Kundendaten (Bestellungen, Newsletter Anmeldungen etc.) ohne die restlichen Anpassungen zu übernehmen? Ansonsten müssten wohl die Kunden welche in der Zeit dazwischen bestellt haben in den sauren Apfel beissen und sich erneut registrieren.

Würde mich über einen Lösungsvorschlag sehr freuen :)

Gruss Kopernikus
Xantiva
Beiträge: 948
Registriert: Mo 10. Mai 2010, 16:26
Shop Version: 1.0.10 [dev]
Kontaktdaten:

Re: Lösungsweg gesucht

Beitrag von Xantiva »

Was wäre, wenn Du quasi im Hintergrund den Shop einmal migrierst und dann anpasst. Wenn es dann an die "Umschaltung" geht, dann machst Du lokal noch mal eine Migration und übernimmst dann in die im Vorfeld geänderte Datenbank, die Kunden, Bestellungen etc. aus dem Liveshop?

(Sollte man aber vorher auch sicherheitshalber mal testen.)
Mein Shop: http://www.basteln-selbermachen.de
yogi
Administrator
Beiträge: 292
Registriert: Do 6. Mai 2010, 14:16
Shop Version: die aktuelle
Wohnort: Köln
Kontaktdaten:

Re: Lösungsweg gesucht

Beitrag von yogi »

Wie Xantiva schon geschrieben hat bekommst Du so den gewünschten Übergang hin:

Erstelle eine neue DatenBank mit dem Inhalt des LIVE-Shops.
Installiere einen WEBs Shop auf dem Server
Übertrage alle benötigten Bilder in den neuen WEBs Shop
- ProduktBilder: images/product_images/original_images
- KategorieBilder: images/categories
- HerstellerBilder: images/manufacturers
Ebenfalls solltest Du dein Template mit in den neuen Shop übertragen:

Nun führe den ShopInstaller aus:
- er migriert die DB und portiert die Bilder ins neue Format (MD5 Bildnamen)
- Mache die notwendigen Anpassungen am Template

Für den LIVE-Gang:
- Sperre den Shop (für die Dauer des updates - z.B. via .htaccess)
- Sichere alle Dateien vom LIVE-Shop
- Sichere die Datenbank (MySQL Dump)
- Übertrage die Demo Installation auf die Live-Umgebung
- starte den Importer (damit die LIVE-DB migiriert wird)
- FERTIG
Kopernikus
Beiträge: 390
Registriert: Fr 19. Okt 2012, 12:15

Re: Lösungsweg gesucht

Beitrag von Kopernikus »

Besten Dank Euch beiden! :)

So werde ich es versuchen. Ach ja, noch ein kleiner Hinweis zur Version V1.0.14

Ich erhalte jeweils nach dem Aufruf des Installers folgende Fehlermeldung:

Code: Alles auswählen

could not detect DIR_FS_CATALOG, please contact info@webs.de

$_SERVER['DOCUMENT_ROOT'] = 'D:/xampp/htdocs'
realpath($_SERVER['DOCUMENT_ROOT']) = 'D:\xampp\htdocs'
$path = '/webs'
Die Version V1.0.13 lässt sich jedoch ohne Probleme installieren. Kann es sein, dass da eine Datei fehlt?
yogi
Administrator
Beiträge: 292
Registriert: Do 6. Mai 2010, 14:16
Shop Version: die aktuelle
Wohnort: Köln
Kontaktdaten:

Re: Lösungsweg gesucht

Beitrag von yogi »

Kopernikus hat geschrieben:Ich erhalte jeweils nach dem Aufruf des Installers folgende Fehlermeldung:
Hallo Kopernikus,

beim Installer wurde aufgrund der Strato Install Probleme die Erkennung des Install-Pfades modfifiziert.
Bei dir scheint nun diese modifizierte Erkennung nicht zu funktionieren.

Könntest Du bitte mal folgenden Code in eine PHP-Datei im Verzeichnis "shop_installer" ablegen und die Datei dann im Browser aufrufen - mich interessiert die Ausgabe

Code: Alles auswählen

<?php
header('content-type: text/plain');
var_dump(array(
  'SCRIPT_NAME' => $_SERVER['SCRIPT_NAME'],
  'PHP_SELF' => $_SERVER['PHP_SELF'],
  'DOCUMENT_ROOT' => $_SERVER['DOCUMENT_ROOT'],
  'realpath' => realpath($_SERVER['DOCUMENT_ROOT']),
  'FILE' => __FILE__,
  'realFILE' => realpath(__FILE__),
));
Kopernikus
Beiträge: 390
Registriert: Fr 19. Okt 2012, 12:15

Re: Lösungsweg gesucht

Beitrag von Kopernikus »

Hallo yogi

Gerne, hier das Ergebnis:

Code: Alles auswählen

array(6) {
  ["SCRIPT_NAME"]=>
  string(31) "/webs13/shop_installer/test.php"
  ["PHP_SELF"]=>
  string(31) "/webs13/shop_installer/test.php"
  ["DOCUMENT_ROOT"]=>
  string(15) "D:/xampp/htdocs"
  ["realpath"]=>
  string(15) "D:\xampp\htdocs"
  ["FILE"]=>
  string(46) "D:\xampp\htdocs\webs13\shop_installer\test.php"
  ["realFILE"]=>
  string(46) "D:\xampp\htdocs\webs13\shop_installer\test.php"
}
Aktuell flippe ich fast aus. Gestern funktionierte noch alles tipp-top. Heute wollte ich am morgen Xampp starten und da startete der Apache nicht mehr. Nach ca. 1 stündiger Fehlersuche, entschied ich mich zur Neuinstallation von Xampp. Meine alte Version deinstallierte ich und lies nur den htdocs Ordner bestehen. Die neue Version XAMPP 1.8.1 läuft nun wieder problemlos. Zunächst wollte ich die Version V1.0.14 aufspielen, was allerdings infolge des oben genannten Fehlers nicht klappte. Also die 1.0.13 geladen und installiert. Dann den Update auf die 1.0.14 ebenfalls ohne grössere Probleme. Dann gings erneut an die Migration. Zunächst lief alles einwandfrei. Dann allerdings erhielt ich die folgende Fehlermeldung:

Code: Alles auswählen

WEB-Shop SQL Error: 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'intNOT NULL,`customers_basket_quantity` int(2) NOT NULL default 0,`final_price` ' at line 1

        D:\xampp\htdocs\webs13\shop_installer\install_update.php:94
        D:\xampp\htdocs\webs13\shop_installer\install_update.php:146
        D:\xampp\htdocs\webs13\shop_installer\install_update.php:644
        D:\xampp\htdocs\webs13\shop_installer\install_update.php:716


    create table `customers_wishlist` (`customers_basket_id` int NOT NULL auto_increment,`customers_id` int NOT NULL default 0,`products_id` intNOT NULL,`customers_basket_quantity` int(2) NOT NULL default 0,`final_price` decimal(15,4) NOT NULL default 0,`customers_basket_date_added` varchar(8),primary key (customers_basket_id)) 
Ich gehe davon aus, dass die neue MySQL Version (MySQL 5.5.27) in Xampp Probleme macht. Oder habt Ihr mir einen Tipp?

Gruss Kopernikus
yogi
Administrator
Beiträge: 292
Registriert: Do 6. Mai 2010, 14:16
Shop Version: die aktuelle
Wohnort: Köln
Kontaktdaten:

Re: Lösungsweg gesucht

Beitrag von yogi »

ein Fehler im Update SCript:

öffne "shop_installer/dbUpdate-V1.0.inc.php

suche nach

Code: Alles auswählen

intNOT NULL
und ändere es in

Code: Alles auswählen

int NOT NULL
da fehlt ein Leerzeichen vor dem "NOT"
yogi
Administrator
Beiträge: 292
Registriert: Do 6. Mai 2010, 14:16
Shop Version: die aktuelle
Wohnort: Köln
Kontaktdaten:

Re: Lösungsweg gesucht

Beitrag von yogi »

Suche mal in der Datei shop_installer/includes/application.php

Code: Alles auswählen

  // get the FILE PATH if there is a Subdirectory
  $path = preg_replace('/^\/$/', '', dirname(dirname($PHP_SELF)));
und ersetzte es durch

Code: Alles auswählen

  // get the FILE PATH if there is a Subdirectory
  $path = preg_replace('/\/$/', '', dirname(dirname($PHP_SELF))).'/';
dann sollte der Installer auch direkt durchlaufen.
Kopernikus
Beiträge: 390
Registriert: Fr 19. Okt 2012, 12:15

Re: Lösungsweg gesucht

Beitrag von Kopernikus »

Hallo yogi

Herzlichen Dank für die tolle Hilfeleistung! Der Installer ist ohne jegliche Probleme durchgelaufen. Ebenfalls die Migration. Nach der Migration erhalte ich jedoch beim Aufruf der Hauptseite die folgende Fehlermeldung:

Code: Alles auswählen

[WEB-Shop SQL Error]

D:\xampp\htdocs\webs14\templates\webs\source\boxes\whats_new_overview.php:59
    1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND p.group_permission_1 = 1 AND ( p.products_date_expire > NOW() OR p.produc' at line 9
    -- whats_new_overview.php select p.products_id, p.products_price, p.products_image, p.products_vpe, p.products_vpe_status, p.products_vpe_value, p.products_tax_class_id, p.products_fsk18, p.products_shippingtime from products p where p.products_status = 1 and AND p.group_permission_1 = 1 AND ( p.products_date_expire > NOW() OR p.products_date_expire IS NULL OR p.products_date_expire = '0000-00-00 00:00:00' ) AND exists ( SELECT 1 FROM products_to_categories p2c JOIN categories c on p2c.categories_id = c.categories_id AND c.categories_status = 1 WHERE p.products_id = p2c.products_id ) ORDER BY p.products_date_added DESC LIMIT 5
Was könnte hier schief gelaufen sein?
yogi
Administrator
Beiträge: 292
Registriert: Do 6. Mai 2010, 14:16
Shop Version: die aktuelle
Wohnort: Köln
Kontaktdaten:

Re: Lösungsweg gesucht

Beitrag von yogi »

Fehler im whats_new SQL:

öffne die Datei "templates/webs/source/boxes/whats_new_overview.php" und suche nach

Code: Alles auswählen

if ( GROUP_CHECK == 'true' ) {
        $where[] = ' AND p.group_permission_'.$_SESSION['customers_status']['customers_status_id'].' = 1 ';
}
in der $where Zeile muß das "AND" enfternt werden:

Code: Alles auswählen

if ( GROUP_CHECK == 'true' ) {
        $where[] = 'p.group_permission_'.$_SESSION['customers_status']['customers_status_id'].' = 1';
}
Antworten