Flask-SQLAlchemyを使用しているFlaskアプリケーションを実行すると、Flask-SQLAlchemyがセッションを保持しているようで、MySQLクライアントターミナルでalter table add columnなどのMySQLコマンドを発行すると、終了するまでコマンドを実行できません。 Flaskアプリケーション。
誰か同じような経験がありますか?Flaskアプリケーションを中断せずにMySQLクライアントでコマンドを発行するにはどうすればよいですか?
Flask-SQLAlchemyを使用しているFlaskアプリケーションを実行すると、Flask-SQLAlchemyがセッションを保持しているようで、MySQLクライアントターミナルでalter table add columnなどのMySQLコマンドを発行すると、終了するまでコマンドを実行できません。 Flaskアプリケーション。
誰か同じような経験がありますか?Flaskアプリケーションを中断せずにMySQLクライアントでコマンドを発行するにはどうすればよいですか?
この質問を見たいと思うかもしれません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)