23

データベースが存在するかどうかを検索する python sqlalchemy を使用してスクリプトを作成する必要があります。データベースが存在する場合はデータベースにクエリを実行し、そうでない場合はデータベースとテーブルを作成します。

擬似コード:

   if db exists cursor.execute(sql)
   else
      create db test;
      create tables;
      insert data;
4

7 に答える 7

23

データベースが存在しない場合sqlalchemy.engine.base.Engine.connect()に発生するメソッドを使用できます。OperationalError

import sqlalchemy as sqla
from sqlalchemy import create_engine
from sqlalchemy.exc import OperationalError
db = sqla.create_engine(database_uri)
try:
    db.connect()
    db.execute(sql)
except OperationalError:
    # Switch database component of the uri
    default_database_uri = os.path.join(os.path.dirname(
                           str(db.engine.url)), 'mysql')
    db = sqla.create_engine(default_database_uri)
    # Create your missing database/tables/data here
    # ...
于 2014-03-19T11:24:46.477 に答える
21

他のライブラリをインポートしても構わない場合の別の方法は、sqlalchemy_utils を使用することです。次にdatabase_exists、sqlalchemy データベース uri を渡すと、期待どおりの結果が得られます。

if database_exists('sqllite:////tmp/test.db'):
    do_stuff_with_db(db)

http://sqlalchemy-utils.readthedocs.org/en/latest/database_helpers.html

于 2015-01-27T23:29:58.817 に答える
3

データベースに接続し、のようなユニバーサルクエリを実行するエンジンを作成しますSELECT 1;。失敗した場合は、DBを作成できます。ただし、新しいデータベースを作成する方法は、DBMSによって異なります。

PostgreSQLでは、postgresデータベースに接続してステートメントを発行してCREATE DATABASEから、新しく作成されたデータベースに接続します。

于 2013-02-26T09:33:47.530 に答える