我正在编写一个 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 脚本在数据库中生成空表
- 使用我编写的脚本插入示例数据
这是一个好的解决方案还是我忽略了什么?