a
This commit is contained in:
@@ -0,0 +1,155 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Initialize database with default data
|
||||
Usage: python init_db.py
|
||||
"""
|
||||
import sys
|
||||
import os
|
||||
|
||||
# Add app to path
|
||||
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
|
||||
|
||||
from app.database import engine, SessionLocal, Base
|
||||
from app.models import Admin, HomeModule, NavMenu, Setting
|
||||
from app.auth import get_password_hash
|
||||
import json
|
||||
|
||||
|
||||
def init_database():
|
||||
print("Creating database tables...")
|
||||
Base.metadata.create_all(bind=engine)
|
||||
|
||||
db = SessionLocal()
|
||||
|
||||
try:
|
||||
# Check if already initialized
|
||||
if db.query(Admin).first():
|
||||
print("Database already initialized!")
|
||||
return
|
||||
|
||||
print("Creating default admin...")
|
||||
admin = Admin(
|
||||
username="admin",
|
||||
password_hash=get_password_hash("abcd1234")
|
||||
)
|
||||
db.add(admin)
|
||||
|
||||
print("Creating default home modules...")
|
||||
default_modules = [
|
||||
HomeModule(
|
||||
name="轮播图",
|
||||
code="banner",
|
||||
type="banner",
|
||||
sort_order=1,
|
||||
is_enabled=True,
|
||||
is_fixed=True,
|
||||
content=json.dumps({"slides": []}),
|
||||
style_config=json.dumps({"backgroundColor": "#ffffff"})
|
||||
),
|
||||
HomeModule(
|
||||
name="产品优势",
|
||||
code="features",
|
||||
type="features",
|
||||
sort_order=2,
|
||||
is_enabled=True,
|
||||
is_fixed=False,
|
||||
title="为什么选择我们",
|
||||
content=json.dumps({"items": []}),
|
||||
style_config=json.dumps({"backgroundColor": "#FEF9E7"})
|
||||
),
|
||||
HomeModule(
|
||||
name="新闻动态",
|
||||
code="news",
|
||||
type="news",
|
||||
sort_order=3,
|
||||
is_enabled=True,
|
||||
is_fixed=False,
|
||||
title="新闻动态",
|
||||
content=json.dumps({"count": 4}),
|
||||
style_config=json.dumps({"backgroundColor": "#ffffff"})
|
||||
),
|
||||
HomeModule(
|
||||
name="合作伙伴",
|
||||
code="partners",
|
||||
type="partners",
|
||||
sort_order=4,
|
||||
is_enabled=True,
|
||||
is_fixed=False,
|
||||
title="合作伙伴",
|
||||
content=json.dumps({"logos": []}),
|
||||
style_config=json.dumps({"backgroundColor": "#FEF9E7"})
|
||||
),
|
||||
HomeModule(
|
||||
name="APP下载",
|
||||
code="downloads",
|
||||
type="downloads",
|
||||
sort_order=5,
|
||||
is_enabled=True,
|
||||
is_fixed=False,
|
||||
title="下载我们的APP",
|
||||
content=json.dumps({"apps": []}),
|
||||
style_config=json.dumps({"backgroundColor": "#ffffff"})
|
||||
),
|
||||
HomeModule(
|
||||
name="联系我们",
|
||||
code="contact",
|
||||
type="contact",
|
||||
sort_order=6,
|
||||
is_enabled=True,
|
||||
is_fixed=False,
|
||||
title="联系我们",
|
||||
content=json.dumps({"phone": "", "email": "", "address": ""}),
|
||||
style_config=json.dumps({"backgroundColor": "#FEF9E7"})
|
||||
),
|
||||
HomeModule(
|
||||
name="专家团队",
|
||||
code="experts",
|
||||
type="experts",
|
||||
sort_order=7,
|
||||
is_enabled=True,
|
||||
is_fixed=False,
|
||||
title="专家团队",
|
||||
content=json.dumps({"view_more_link": ""}),
|
||||
style_config=json.dumps({"backgroundColor": "#ffffff"})
|
||||
)
|
||||
]
|
||||
for module in default_modules:
|
||||
db.add(module)
|
||||
|
||||
print("Creating default nav menus...")
|
||||
default_menus = [
|
||||
NavMenu(name="首页", link="/", sort_order=1, is_enabled=True),
|
||||
NavMenu(name="产品介绍", link="/product", sort_order=2, is_enabled=True),
|
||||
NavMenu(name="新闻动态", link="/news", sort_order=3, is_enabled=True),
|
||||
NavMenu(name="关于我们", link="/about", sort_order=4, is_enabled=True),
|
||||
NavMenu(name="联系我们", link="/contact", sort_order=5, is_enabled=True),
|
||||
]
|
||||
for menu in default_menus:
|
||||
db.add(menu)
|
||||
|
||||
print("Creating default settings...")
|
||||
default_settings = [
|
||||
Setting(key="site_name", value="飞点健康", group="general", description="网站名称"),
|
||||
Setting(key="site_logo", value="/logo.png", group="general", description="网站Logo"),
|
||||
Setting(key="company_name", value="深圳飞点健康科技有限公司", group="company", description="公司名称"),
|
||||
Setting(key="copyright", value="© 2024 飞点健康 版权所有", group="general", description="版权信息"),
|
||||
]
|
||||
for setting in default_settings:
|
||||
db.add(setting)
|
||||
|
||||
db.commit()
|
||||
print("✅ Database initialized successfully!")
|
||||
print("\nDefault admin credentials:")
|
||||
print(" Username: admin")
|
||||
print(" Password: abcd1234")
|
||||
|
||||
except Exception as e:
|
||||
db.rollback()
|
||||
print(f"❌ Error: {e}")
|
||||
raise
|
||||
finally:
|
||||
db.close()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
init_database()
|
||||
Reference in New Issue
Block a user