2013-06-03 4 views
7

Ich benutze phpMyAdmin 4.0.2 und scheint, wenn ein Export über eine ganze DB, standardmäßig fügt die Anweisung "CREATE DATABASE IF NOT EXISTS" am Anfang der Export-SQL.Wie kann die Anweisung "CREATE DATABASE IF NOT EXISTS" vom Export in phpMyAdmin 4 entfernt werden?

Ich war nicht in der Lage zu finden, eine Konfigurationsoption oder eine Option, um das zu deaktivieren ... Also gibt es eine Möglichkeit, das zu deaktivieren und nicht diese Anweisung in meinen Exporten standardmäßig?

+1

Tut es weh, es da zu haben? Warum brauchst du es weg? –

+3

Es ist nur, weil ich für große Datenbanken es in einer Datei aus meiner lokalen DB dev exportieren und auf der Server-DB importieren möchte. Wenn der Name der lokalen Datenbank vom Namen der Datenbank auf dem Server abweicht und ich die Datei auf dem Server importiere, würde dies zu einem Fehler führen, wenn ich versuche, dieselbe DB zu erstellen, aber mit einem anderen Namen ... wenn das sinnvoll ist. – Vlad

+0

Wir haben nur das chelplog von phpMyAdmin (http://www.phpmyadmin.net/documentation/changelog.php) durchgesehen und es scheint, dass dieses Verhalten am 24. Mai 2013 in der Version 4.0.2.0 eingeführt wurde. Zum Glück (wie es mich auch verursachte) unnötiger Aufwand bei der Verwendung von lokalen Datenbanknamen, die sich von den Staging- und Live-Datenbanknamen unterschieden). Es sieht so aus, als hätten sie dies am 4. August 2013 in Version 4.0.5.0 erneut geändert und dies zu einer Option gemacht (standardmäßig falsch). – Stephen

Antwort

2

Dieses Verhalten ist nicht standardmäßig in Version 3 aufgetreten. Eine schnelle Lösung, eigentlich ein Hack und somit keine wünschenswerte Lösung, ist das Bearbeiten der Exportklassendatei in Bibliotheken/Plugins/Export/ExportSql.class.php und zwingen, die Erstellung und Verwendung von Aussagen durch Hinzufügen Kommentar gesetzt werden „-“ vor ihnen, als solche: Linie 709

$create_query = '-- CREATE DATABASE IF NOT EXISTS ' 

Linie 734

'-- USE ' . PMA_Util::backquoteCompat($db, $compat) 

Edit: Es gibt einen Nachteil, und das ist wenn Sie einen oder mehrere ent exportieren Ire Datenbanken (nicht nur einige oder alle Tabellen innerhalb einer Datenbank), dann erscheinen die CREATE und USE-Anweisungen auch kommentiert.

+0

Dies scheint den Trick zu machen. Vielen Dank! – Vlad

+3

Nun, nicht wirklich eine Lösung, wenn Sie phpmyadmin auf Shared Hosting verwenden, jetzt ist es –

0

Eine bessere Idee im Gegensatz zu Hermes Antwort wäre, die Datei ./export.php zu bearbeiten (Achtung: nicht db_export.php).

On line 724 (in phpMyAdmin 4.0.4) Sie die Zeilen finden:

if (! $export_plugin->exportDBCreate($db)) { 
     break; 
    } 

Sie können einen Kommentar oder entfernen sie die Erstellung der Datenbank erstellen Aussagen überspringen (Was meiner Meinung nach in auch ist sauberer als 2 kommentierte Zeilen im Export).

Wie so:

/* 
    if (! $export_plugin->exportDBCreate($db)) { 
     break; 
    } 
    */ 

Die Zeilen oben nur für den Export einer einzigen Datenbank anwenden (Zeile 720, finden Sie: } elseif ($export_type == 'database') {). Sie werden also keine vollständigen Serverexporte brechen.