データベースを初期状態にリセットする python スクリプトを作成しています (すべてのテーブルにいくつかのハードコードされたエントリ)。データベースは、主キーと外部キーを持つ複数のテーブルで構成されています。
スクリプトを実行するたびに、すべてのテーブルの古いエントリがすべて削除され、主キー カウンタがリセットされ、サンプル エントリが挿入されます。
現在、私は次のようにこれを達成しようとしています:
# Delete all the entries from the tables
cursor.execute("DELETE FROM table1")
cursor.execute("DELETE FROM table2")
cursor.execute("DELETE FROM table3")
# Reset the primary key counter and insert sample entries
cursor.execute("ALTER TABLE table1 AUTO_INCREMENT = 1")
cursor.execute("INSERT INTO table1(username, password) VALUES('user01', '123')")
cursor.execute("ALTER TABLE table2 AUTO_INCREMENT = 1")
cursor.execute("INSERT INTO table2(column1, column2) VALUES('column1_data', 'column2_data')")
一部のテーブルに外部キーが存在するため、これは機能しません (削除できません)。
models.py スクリプト (Django も使用) を使用してテーブルを生成するので、次の方法でこれを解決できると考えました。
- プログラムでデータベースを削除し、同じ名前で新しいデータベースを作成します
- models.py スクリプトを呼び出して、データベースに空のテーブルを生成します
- 私が書いたスクリプトを使用してサンプルデータを挿入する
これは良い解決策ですか、それとも何かを見落としていますか?