65 lines
1.6 KiB
Python
65 lines
1.6 KiB
Python
#!/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) |