मैं नहीं जानता कि क्या विहित तरीका यहाँ लेकिन है एक डेटाबेस डेटाबेस की सूची के खिलाफ जाँच करके मौजूद रहने पर देखने के लिए जाँच करने के लिए एक तरीका है।
from sqlalchemy import create_engine
# This engine just used to query for list of databases
mysql_engine = create_engine('mysql://{0}:{1}@{2}:{3}'.format(user, pass, host, port))
# Query for existing databases
existing_databases = mysql_engine.execute("SHOW DATABASES;")
# Results are a list of single item tuples, so unpack each tuple
existing_databases = [d[0] for d in existing_databases]
# Create database if not exists
if database not in existing_databases:
mysql_engine.execute("CREATE DATABASE {0}".format(database))
print("Created database {0}".format(database))
# Go ahead and use this engine
db_engine = create_engine('mysql://{0}:{1}@{2}:{3}/{4}'.format(user, pass, host, port, db))
यदि आपको यह पता करने की आवश्यकता नहीं है कि डेटाबेस बनाया गया था या नहीं, तो यह एक वैकल्पिक तरीका है।
from sqlalchemy import create_engine
# This engine just used to query for list of databases
mysql_engine = create_engine('mysql://{0}:{1}@{2}:{3}'.format(user, pass, host, port))
# Query for existing databases
mysql_engine.execute("CREATE DATABASE IF NOT EXISTS {0} ".format(database))
# Go ahead and use this engine
db_engine = create_engine('mysql://{0}:{1}@{2}:{3}/{4}'.format(user, pass, host, port, db))
स्रोत
2016-02-25 01:26:15
मेरे पास पहले से अस्तित्व में डेटाबेस का एक पूल है, इसलिए यदि मैं एक सार्वभौमिक क्वेरी बनाता हूं तो यह उनको उठाएगा और मैं जो चाहता हूं उसे नहीं बनाऊंगा। मैं उम्मीद कर रहा था कि माइस्क्ल के बराबर एक sqlalchemy है यदि डेटाबेस मौजूद नहीं है। – Herb21
तक "सार्वभौमिक" मैं यह सब SQL डेटाबेस पर काम करता है मतलब है - मैं जो बैकएंड (रों) आप उपयोग कर रहे पता नहीं है। 'create_engine (my_target_dsn) .execute ('1 का चयन करें') 'आपके मौजूदा पूल में हस्तक्षेप नहीं करेगा। –
मेरा बुरा मैं तुम्हें मैं कि के बारे में सोचा लेकिन यह इतना सादा और आसान मैं did not यह काम करेगा लगता है लग रहा था मिलता है। जिस तरह से मैं अजगर और sqlalchemy का उपयोग कर रहा हूँ – Herb21