56 lines
2.2 KiB
Python
56 lines
2.2 KiB
Python
# -*- coding: utf-8 -*-
|
|
from flask import Flask
|
|
from models import db
|
|
from config import Config
|
|
|
|
def create_admin_note():
|
|
"""顯示 LDAP 管理員設定說明。"""
|
|
print("✅ 資料庫已初始化!")
|
|
print(" ===================================")
|
|
print(" 📋 LDAP 管理員設定說明")
|
|
print(" ===================================")
|
|
print(" 由於系統使用 LDAP 驗證,管理員權限需要在首次登入後手動設定。")
|
|
print(" ")
|
|
print(" 步驟:")
|
|
print(" 1. 使用 AD 帳號登入系統")
|
|
print(" 2. 直接在資料庫中將該用戶的 role 更新為 'admin'")
|
|
print(" 3. 或修改 auth.py 中新用戶的預設權限設定")
|
|
print(" ")
|
|
print(" SQL 範例:")
|
|
print(" UPDATE ts_user SET role='admin' WHERE username='你的AD帳號';")
|
|
print(" ===================================")
|
|
|
|
def init_database(app):
|
|
"""初始化資料庫:刪除所有現有資料表並重新建立。"""
|
|
with app.app_context():
|
|
print("🔄 開始進行資料庫初始化...")
|
|
# 為了安全,先刪除所有表格,再重新建立
|
|
db.drop_all()
|
|
print(" - 所有舊資料表已刪除。")
|
|
db.create_all()
|
|
print(" - 所有新資料表已根據 models.py 建立。")
|
|
print("✅ 資料庫結構已成功初始化!")
|
|
|
|
if __name__ == '__main__':
|
|
# 建立一個暫時的 Flask app 來提供資料庫操作所需的應用程式上下文
|
|
app = Flask(__name__)
|
|
app.config.from_object(Config)
|
|
|
|
# 將資料庫物件與 app 綁定
|
|
db.init_app(app)
|
|
|
|
print("=================================================")
|
|
print(" ⚠️ 資料庫初始化腳本 ⚠️")
|
|
print("=================================================")
|
|
print("此腳本將會刪除所有現有的資料,並重新建立資料庫結構。")
|
|
print("這個操作是不可逆的!")
|
|
|
|
# 讓使用者確認操作
|
|
confirmation = input("👉 您確定要繼續嗎? (yes/no): ")
|
|
|
|
if confirmation.lower() == 'yes':
|
|
init_database(app)
|
|
create_admin_note()
|
|
print("\n🎉 全部完成!")
|
|
else:
|
|
print("❌ 操作已取消。") |