5

Flask-SQLAlchemyを使用しているFlaskアプリケーションを実行すると、Flask-SQLAlchemyがセッションを保持しているようで、MySQLクライアントターミナルでalter table add columnなどのMySQLコマンドを発行すると、終了するまでコマンドを実行できません。 Flaskアプリケーション。

誰か同じような経験がありますか?Flaskアプリケーションを中断せずにMySQLクライアントでコマンドを発行するにはどうすればよいですか?

4

1 に答える 1

9

この質問を見たいと思うかもしれませんSQLAlchemyRelationshipローダーはテーブルにロックを残しますか?

あなたがする必要があるのは、サブクラスflask.ext.sqlalchemy.SQLAlchemyを作成し、メソッドをオーバーライドしapply_driver_hacksて、追加のキーワード引数を渡すことisolation_level='READ <some level>'です。

from flask.ext.sqlalchemy import SQLAlchemy

class UnLockedAlchemy(SQLAlchemy):
    def apply_driver_hacks(self, app, info, options):
        if not "isolation_level" in options:
            options["isolation_level"] = "READ COMMITTED"  # For example
        return super(UnLockedAlchemy, self).apply_driver_hacks(app, info, options)
于 2012-09-14T02:25:20.657 に答える