1ST
This commit is contained in:
65
backend/init_db.py
Normal file
65
backend/init_db.py
Normal file
@@ -0,0 +1,65 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
資料庫初始化腳本
|
||||
在現有資料庫中建立 todo 系統所需的表格
|
||||
"""
|
||||
|
||||
import sys
|
||||
import os
|
||||
from flask import Flask
|
||||
from config import config
|
||||
from models import db
|
||||
|
||||
def init_database():
|
||||
"""初始化資料庫表格"""
|
||||
try:
|
||||
# 建立 Flask app
|
||||
app = Flask(__name__)
|
||||
app.config.from_object(config['development'])
|
||||
|
||||
# 初始化資料庫
|
||||
db.init_app(app)
|
||||
|
||||
with app.app_context():
|
||||
print("正在建立資料庫表格...")
|
||||
|
||||
# 建立所有表格
|
||||
db.create_all()
|
||||
|
||||
print("✅ 資料庫表格建立完成!")
|
||||
print("\n建立的表格:")
|
||||
for table in db.metadata.tables.keys():
|
||||
print(f" - {table}")
|
||||
|
||||
return True
|
||||
|
||||
except Exception as e:
|
||||
print(f"❌ 資料庫初始化失敗: {str(e)}")
|
||||
return False
|
||||
|
||||
def main():
|
||||
print("=" * 50)
|
||||
print("PANJIT To-Do System - 資料庫初始化")
|
||||
print("=" * 50)
|
||||
|
||||
# 檢查環境變數檔案
|
||||
if not os.path.exists('.env'):
|
||||
print("⚠️ 找不到 .env 檔案")
|
||||
print("請先執行: copy .env.example .env")
|
||||
return False
|
||||
|
||||
# 初始化資料庫
|
||||
success = init_database()
|
||||
|
||||
if success:
|
||||
print("\n🎉 初始化完成!")
|
||||
print("現在可以啟動應用程式了")
|
||||
else:
|
||||
print("\n💥 初始化失敗")
|
||||
print("請檢查資料庫連線設定")
|
||||
|
||||
return success
|
||||
|
||||
if __name__ == '__main__':
|
||||
success = main()
|
||||
sys.exit(0 if success else 1)
|
Reference in New Issue
Block a user