Mentre questo non risponde direttamente alla domanda, credo che fornirà una soluzione all'obiettivo principale: Estrazione del DDL.
Assunta: Il seguente è uno script di shell, quindi un ambiente adeguato (OS X, Linux, Cygwin) è richiesto
Passi:
- installare gli script della riga di comando (follow the instructions here)
Creare il seguente script personalizzato nella stessa directory del google_sql.sh:
GOOGLE_CLOUD_SQL_INSTANCE=test:test
echo "SELECT CONCAT('SELECT CONCAT(\"SHOW CREATE TABLE ',schema_name,'.\",table_name,\";\") \"select \\\\\"use ',schema_name,';\\\\\";\" FROM information_schema.tables WHERE table_schema = \"',schema_name,'\";') 'use information_schema;' FROM SCHEMATA WHERE schema_name NOT IN ('information_schema','mysql','performance_schema');" >> $$.1.get_schema.sql
./google_sql.sh $GOOGLE_CLOUD_SQL_INSTANCE information_schema < $$.1.get_schema.sql > $$.2.show_create.sql
./google_sql.sh $GOOGLE_CLOUD_SQL_INSTANCE information_schema < $$.2.show_create.sql > $$.3.sql.out
./google_sql.sh $GOOGLE_CLOUD_SQL_INSTANCE information_schema < $$.3.sql.out > $$.4.create.raw
awk -F" " '/Table Create Table/{print "";}
/CREATE/{sub(/^..*CREATE TABLE/,"CREATE TABLE");print $0}
$1 == "" {print $0}
/^\)/{print $0";"}
/^use/{print $0}' $$.4.create.raw > $GOOGLE_CLOUD_SQL_INSTANCE.ddl.sql
rm $$.*
Sostituisci "test: test" nello script con l'identificatore di istanza di Google Cloud
- Esegui lo script per produrre un file con il formato "test: test" .ddl.sql che avrà il DDL per tutte le tabelle in tutto banche dati.
Stai utilizzando Google Plugin per Eclipse? –
@ Neil H, sì sto usando Google Plugin –
Ti suggerisco di rileggere la tua domanda e provare a formularla in modo diverso in modo che sia più chiaro ciò che stai chiedendo altrimenti la gente voterà per chiuderla come Non una domanda. Hai solo bisogno di aggiungere un paio di frasi in più, invece di cercare di spiegare tutto in una frase (la seconda). –