2013-06-03 7 views
7

Sto usando phpMyAdmin 4.0.2 e sembra quando eseguo un'esportazione su un intero DB, per impostazione predefinita aggiunge l'istruzione "CREATE DATABASE IF NOT EXISTS" all'inizio dell'esportazione SQL.Come rimuovere l'istruzione "CREATE DATABASE SE NON ESISTE" da Esporta in phpMyAdmin 4?

Non sono riuscito a trovare un'opzione di configurazione o alcuna opzione per disattivarlo ... Quindi esiste un modo per disattivarlo e non avere quell'istruzione nelle mie esportazioni di default?

+1

Fa male averlo lì? Perché ne hai bisogno? –

+3

È solo perché per database di grandi dimensioni mi piacerebbe esportarlo in un file dal mio DB locale dev e importarlo sul DB del server. Quando il nome del database locale differisce dal nome del database sul server e impongo il file sul server, si genera un errore quando si tenta di creare lo stesso DB, ma con un nome diverso ... se questo ha senso. – Vlad

+0

Basta guardare attraverso il changelog di phpMyAdmin (http://www.phpmyadmin.net/documentation/changelog.php) e sembra che questo comportamento sia stato introdotto nella versione 4.0.2.0 il 24 maggio 2013. Per fortuna (visto che anche questo mi stava causando inutili seccature quando si utilizzano nomi di database locali diversi dai nomi di staging e database live), sembra che abbiano cambiato di nuovo nella versione 4.0.5.0 il 4 agosto 2013, e l'abbiano resa un'opzione (false di default). – Stephen

risposta

2

Questo comportamento non si è verificato per impostazione predefinita nella versione 3. Una soluzione rapida, in realtà un trucco e quindi non la soluzione desiderabile, è modificare il file di classe di esportazione situato nelle librerie/plugins/export/ExportSql.class.php e forzare i creare e utilizzare le dichiarazioni di essere commentato con l'aggiunta di "-" davanti a loro, come ad esempio: linea 709

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

linea 734

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

Edit: C'è un inconveniente, e che è se si esportano uno o più ent ire databases (non solo alcune o tutte le tabelle all'interno di un database), quindi le dichiarazioni CREATE e USE appaiono anche commentate.

+0

Questo sembra fare il trucco. Grazie! – Vlad

+3

Beh, non proprio una soluzione se si utilizza phpmyadmin su hosting condiviso, ora è –

0

Un'idea migliore rispetto alla risposta di Hermes sarebbe quella di modificare il file ./export.php (attenzione: non db_export.php).

on line 724 (in phpMyAdmin 4.0.4) troverete le linee:

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

Puoi commentare o rimuoverle per saltare la creazione delle dichiarazioni CREATE DATABASE (che a mio parere è anche Neater quindi avendo 2 righe commentate nell'esportazione).

Come così:

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

Le righe di cui sopra si applicano solo per l'esportazione di un singolo database (On line 720, troverete: } elseif ($export_type == 'database') {). Quindi non spezzerai le esportazioni complete del server.

Problemi correlati