db.create_tables(tables, safe=True)
中的 safe=True
參數的作用是 防止在表已經存在的情況下引發錯誤。
具體來說:
- 當
safe=True
時:Peewee 會在生成的 SQL 語句中加入IF NOT EXISTS
子句(例如:CREATE TABLE IF NOT EXISTS my_table (...)
)。這意味著如果數據庫中已經存在同名的表,Peewee 會 靜默地跳過創建該表,不會執行任何操作,也不會報錯。 - 當
safe=False
(默認值)時:如果嘗試創建一個已經存在的表,數據庫會拋出一個錯誤(通常是OperationalError: table already exists
)。
總結:
- 已有的表不會再次創建。使用
safe=True
就是為了安全地處理表已存在的情況,避免重復創建導致錯誤。這使得你的初始化腳本可以多次安全運行,例如在應用啟動時。