2013-06-03 14 views
7

Używam phpMyAdmin 4.0.2 i wydaje mi się, że podczas eksportowania całego DB, domyślnie dodaje on instrukcję "CREATE DATABASE IF NOT EXISTS" na początku eksportu SQL.Jak usunąć instrukcję "CREATE DATABASE IF NOT EXISTS" z Export w phpMyAdmin 4?

Nie mogłem znaleźć opcji konfiguracyjnej ani żadnej opcji wyłączenia tej opcji ... Czy istnieje sposób, aby wyłączyć tę opcję i nie mieć tej instrukcji domyślnie w eksporcie?

+1

Czy to boli mieć to tam? Dlaczego tego potrzebujesz? –

+3

Po prostu dla dużych baz danych chciałbym wyeksportować go do pliku z mojego lokalnego lokalnego DB i zaimportować na serwerze DB. Gdy lokalna nazwa bazy danych różni się od nazwy bazy danych na serwerze i importuję plik na serwer, spowodowałoby to błąd podczas próby utworzenia tego samego DB, ale z inną nazwą ... jeśli to ma sens. – Vlad

+0

Wystarczy przejrzeć dziennik zmian phpMyAdmin (http://www.phpmyadmin.net/documentation/changelog.php) i wydaje się, że to zachowanie zostało wprowadzone w wersji 4.0.2.0 w dniu 24 maja 2013 r. Na szczęście (ponieważ to również powodowało niepotrzebne kłopoty przy korzystaniu z lokalnych nazw baz danych, które różniły się od nazw pomostowych i żywych baz danych), wygląda na to, że zmieniły to ponownie w wersji 4.0.5.0 4 sierpnia 2013 r. i uczyniły tę opcję (domyślnie false). – Stephen

Odpowiedz

2

To zachowanie nie stało się domyślnie w wersji 3. Szybka poprawka, w rzeczywistości hack, a tym samym nie pożądane rozwiązanie, to edycja pliku klasy eksportu znajdującego się w bibliotekach/pluginów/eksportu/ExportSql.class.php i zmusić Tworzenie i używanie stwierdzeń należy wykomentowane dodając "-" przed nimi, jako takie: Linia 709

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

Linia 734

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

Edit: jest to wada, a mianowicie jeśli eksportujesz jeden lub więcej ent są bazy danych (nie tylko niektóre lub wszystkie tabele wewnątrz bazy danych), a następnie instrukcje CREATE i USE pojawiają się również komentowane.

+0

Wydaje się, że to wystarczy. Dzięki! – Vlad

+3

Cóż, nie jest to rozwiązanie, jeśli używasz phpmyadmin na współdzielonym hostingu, teraz to jest –

0

Lepszym pomysłem w przeciwieństwie do odpowiedzi Hermesa byłoby edytowanie pliku ./export.php (Pamiętaj: nie db_export.php).

Na linii 724 (w phpMyAdmin 4.0.4) Znajdziesz linie:

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

Możesz skomentować lub usunąć je pominąć tworzenia CREATE baz danych (co moim zdaniem jest również następnie następnie posiada 2 skomentowane linie w eksporcie).

tak:

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

Wiersze powyższe mają zastosowanie tylko do wywozu jednej bazy danych (on line 720 znajdziesz: } elseif ($export_type == 'database') {). Więc nie zepsujesz pełnego eksportu serwerów.

Powiązane problemy