2010-07-13 22 views
5

Şu anda bir tek tıklamayla oluşturulmuş n 'create install oluşturmak için FinalBuilder kullanıyorum, ancak bir komut satırından SQL betiği oluşturmak için MySQL Workbench kapasite eksikliği ile karşılaştım.Komut Satırı'nı kullanarak MySQL Workbench'den SQL Komut Dosyası nasıl oluşturulur?

+0

Lütfen bunun neden sorun olduğunu ve ne yapmaya çalıştığınızı açıklayabilir misiniz? – Cez

+0

Workbench'ın komut satırı kapasitesi olmadan, bina işlemini nasıl otomatikleştirebilirim? –

+0

Ne için Workbench kullanıyorsunuz? Bildiğim kadarıyla bir komut satırı arayüzü yok. – Cez

cevap

0

MySQL Workbench'in tam bir Python Komut Dosyası API'sı vardır. Eğer ek özellikler gerekiyorsa

, lütfen bize bildirin: http://forums.mysql.com/index.php?151

  • Aslında Python (veya Lua) ile bu görevi otomatik hale getirebilirsiniz
+1

Tnx'i kullanıyor. Bu API'yi kesinlikle kontrol edeceğim. Ayrıca, mwb dosyalarından SQL oluşturabilecek bir CLI uygulamasının da olması harika bir özellik olacaktır. Yani DB şemaları MySQL Workbench GUI kullanılarak tasarlanabilir ve daha sonra tek tıklamayla otomatik dağıtım prosedürü (geliştirme sırasında, yani db şemasında her şeyi yapabilir). Her şeyi DRY uyumlu tutmak. Ama eminim ki bu, yukarıda belirtilen Python API'sı ile yapılabilir. – maraspin

+0

Bağlantı, API'ye yol açmıyor ... –

4

MySQL tezgah komut - MySQL tezgah zaten var Scripting menüsündeki tercüman. Yeni bir komut dosyası oluşturma ve kullanma saplama: Bu actully komut satırından çalışmaz

# -*- 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, {}) 

, ama --run-script seçeneğiyle çalıştırabilirsiniz inanıyoruz.

+2

Teşekkürler! Bu temelde çalışır (ve ben de [benim sorumun cevabı] (http://stackoverflow.com/a/26914679/419404) 'a cevabınızı dahil ettim, ancak senaryonuzda küçük hatalar var: 'DbMySQLFE .generateSQLCreateStatements (c, c.version, {}) 've' + '/ ddl.sql'. – Archimedix

İlgili konular