私は、タイトルに暗示されているトピックとちょっと混乱しています。Flask-SQLAlchemy - テーブル/データベースはいつ作成され、破棄されますか?
Flaskアプリを起動すると、SQLAlchemyはSQLALCHEMY_DATABASE_URI
を検索しますが、私の場合はMySQLデータベースです。そして、すでに存在していなければテーブルを作成しますか?
config.py
ファイル内のSQLALCHEMY_DATABASE_URI
変数にプログラムされたデータベースが存在しない場合はどうなりますか?
データベースが存在し、そのテーブルがほんのわずかである(SQLAlchemyコードに実際のMySQLデータベースに存在するテーブルより多くのテーブルが存在する)場合はどうなりますか?それらのテーブルを消去して、現在の仕様で新しいテーブルを作成しますか?
これらのテーブルがすべて存在する場合はどうなりますか?彼らは消去され、再作成されますか?
私は、(1)スキーマに変更が加えられたときにデータベース情報を失わないように、プロセス全体の仕組みを理解しようとしています。(2)方法とタイミングを完全に管理するために、 SQLAlchemyは実際のデータベースと会話します。
私はこれらの方法に精通していますが、アプリ自体から呼び出すことはできませんか?同様に、アプリケーションの起動時に、そのデータベースが存在するかどうかを確認し、そうでない場合はcreate_allメソッドを呼び出すことができますか?メガチュートリアルでは、SQLiteを使用しています。つまり、データベースがあるかどうかをファイルで確認できます。それはMySQLで可能ですか? –
@AlexChumbley:あなたは確かにそれを行うことができます。テーブルがリストされていないかどうかを検出し、 'create_all'を自動的に呼び出します。 –
@AlexChumbley:私は現在、GAEアプリケーションで、 '/ admin'ルートを使用して、将来の移行サポートを目の当たりにして' create_tables'パートを呼び出せるようにしています。 –