2010-07-13 15 views
5

मैं वर्तमान में एक-क्लिक बिल्डिंग एन 'इंस्टाल उत्पन्न करने के लिए फ़ाइनलबिल्डर का उपयोग कर रहा हूं, लेकिन मुझे कमांड लाइन से एसक्यूएल स्क्रिप्ट उत्पन्न करने के लिए माईएसQL वर्कबेंच क्षमता की कमी का सामना करना पड़ा।कमांड लाइन का उपयोग कर MySQL वर्कबेंच से SQL स्क्रिप्ट कैसे उत्पन्न करें?

+0

कृपया आप क्यों कि एक समस्या है स्पष्ट कर सकते हैं और आप क्या करना चाहते हैं? – Cez

+0

वर्कबेंच की कमांड लाइन क्षमता के बिना, मैं बिल्डिंग ऑपरेशन को स्वचालित कैसे कर सकता हूं? –

+0

आप वर्कबेंच का उपयोग किसके लिए कर रहे हैं? जहां तक ​​मुझे पता है, इसमें कमांड लाइन इंटरफ़ेस नहीं है। – Cez

उत्तर

0

MySQL वर्कबेंच में एक पूर्ण पायथन स्क्रिप्टिंग एपीआई है।

आप अतिरिक्त सुविधाओं की जरूरत है, तो कृपया हमें बताएं: http://forums.mysql.com/index.php?151

  • MySQL Workbench
+1

Tnx की चर्चा करते हुए है, हालांकि एक कमांड लाइन है। मैं निश्चित रूप से इस एपीआई की जांच करूँगा। यह निश्चित रूप से एक सीएलआई ऐप रखने के लिए एक शानदार सुविधा होगी, जो एमडब्ल्यूबी फाइलों से एसक्यूएल उत्पन्न कर सकता है। तो डीबी स्कीमा MySQL Workbench GUI का उपयोग कर तैयार किया जा सकता है, और फिर तैनाती प्रक्रिया स्वचालित (विकास के दौरान, मेरा मतलब है) एक क्लिक के डाटाबेस स्कीमा पर सब कुछ कर सकता है। सब कुछ DRY अनुपालन रखते हुए। लेकिन मुझे विश्वास है कि यह सब ऊपर वर्णित पायथन एपीआई के माध्यम से किया जा सकता है। – maraspin

+0

लिंक एपीआई का नेतृत्व नहीं करता है ... –

4

आप वास्तव में अजगर (या लुआ) के साथ इस कार्य को स्वचालित कर सकते हैं स्क्रिप्ट - MySQL Workbench पहले से ही है Scripting मेनू के तहत दुभाषिया। एक नई स्क्रिप्ट बनाएं और उनका उपयोग ठूंठ:

# -*- coding: utf-8 -*- 

import os 
import grt 
from grt.modules import DbMySQLFE 

c = grt.root.wb.doc.physicalModels[0].catalog 
DbMySQLFE.generateSQLCreateStatements(c, c.version, { 
    'GenerateDrops' : 1, 
    'GenerateSchemaDrops' : 1, 
    'OmitSchemata' : 1, 
    'GenerateUse' : 1 
}) 
DbMySQLFE.generateSQLCreateStatements(c, c.version, { 
DbMySQLFE.createScriptForCatalogObjects(os.path.dirname(grt.root.wb.docPath) + 'ddl.sql', c, {}) 

यह actully कमांड लाइन से नहीं चलता है, लेकिन मेरा मानना ​​है कि आप --run-script विकल्प के साथ चला सकते हैं।

+2

धन्यवाद! यह मूल रूप से काम करता है (और मैंने आपके उत्तर को [मेरे प्रश्न के उत्तर] (http://stackoverflow.com/a/26914679/419404) में भी शामिल किया है), हालांकि आपकी स्क्रिप्ट में कुछ मामूली त्रुटियां हैं: इसे 'DbMySQLFE' पढ़ना चाहिए .generateSQLCreateStatements (सी, c.version, {}) 'और '+'/ddl.sql''। – Archimedix