9

sqlalchemy (0.8.2) ではdrop_all()create_all()どちらにもtablesパラメーターがあり、ドロップまたは追加する Table オブジェクトのリストにすることができます。

フラスコ sqlalchemy (1.0) では、これらのメソッドにはこのパラメータがありません。

フラスコアルケミーを使用して、データベーステーブルのサブセットを削除/作成する適切な方法は何ですか?

4

1 に答える 1

10

Flask-SQLAlchemy のcreate_all()メソッドは、SQLAlchemy のメソッドを呼び出すことにより、Base のメタデータを使用してテーブルを作成しますMetaData.create_all()。このメソッドを使用すると、テーブル オブジェクトのリストを指定できます。また、基本的にエンジンである「バインド」を提供する必要があります。Flask-SQLAlchemyのengineプロパティを使用して取得できます。

だから、あなたはできるはずです...

db = SQLAlchemy(app)

class MyTable(db.Model):
    ...

class MyOtherTable(db.Model):
    ...

db.metadata.create_all(db.engine, tables=[
    MyTable.__table__,
    ...
])

これは、単一のデータベースを使用していることを前提としています。create_all()それ以外の場合は、を使用して各データベースに対して呼び出しを行う必要がありますget_engine()

于 2013-10-08T09:22:03.217 に答える