邮轮穿舱件管理系统后台 - 安装与配置指南
概述
本文档提供邮轮穿舱件管理系统后台的完整安装和配置指南。该系统基于FastAPI框架构建,使用Tortoise ORM进行数据库操作,并通过Aerich工具管理数据库迁移。
环境要求
系统要求
- Python版本: 3.11+
- 数据库: MySQL 5.7+
- 操作系统: Linux/Windows/macOS
软件依赖
- FastAPI Web框架
- Tortoise ORM数据库ORM
- Aerich数据库迁移工具
- MySQL数据库驱动
- Pydantic设置管理
项目结构分析
flowchart TD
A[项目根目录] --> B[app/]
A --> C[.config/]
A --> D[migrations/]
A --> E[test/]
A --> F[Dockerfile]
B --> B1[core/]
B --> B2[models/]
B --> B3[routers/]
B --> B4[service/]
B --> B5[main.py]
B --> B6[tortoise_config.py]
B1 --> B1a[settings.py]
B1 --> B1b[lifespan.py]
B1 --> B1c[middleware.py]
C --> C1[development.database.json]
C --> C2[development.application.json]
C --> C3[development.wechat.json]
安装步骤
1. 克隆项目代码
git clone <repository_url>
cd c0726-backend-api
2. 创建Python虚拟环境
python -m venv venv
source venv/bin/activate # Linux/macOS
venv\Scripts\activate # Windows
3. 安装依赖包
pip install -r requirements.txt
如果requirements.txt文件编码问题,可通过pyproject.toml安装:
pip install .
4. 数据库配置
创建MySQL数据库
CREATE DATABASE c0726p CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
配置数据库连接
编辑 .config/development.database.json 文件:
{
"connections": {
"default": {
"engine": "tortoise.backends.mysql",
"credentials": {
"host": "localhost",
"port": 3306,
"user": "root",
"password": "123456",
"database": "c0726p"
}
}
}
}
5. 应用配置
创建应用配置文件 .config/development.application.json:
{
"app_debug": true,
"app_name": "邮轮穿舱件管理系统",
"app_version": "1.0.0",
"app_desc": "邮轮穿舱件管理后台API"
}
创建微信配置 .config/development.wechat.json:
{
"wechat_appid": "your_appid",
"wechat_secret": "your_secret"
}
Aerich数据库迁移配置
配置说明
系统使用Aerich进行数据库迁移管理,配置位于 pyproject.toml:
[tool.aerich]
tortoise_orm = "app.tortoise_config.AERICH_CONFIG"
location = "./migrations"
src_folder = "./."
数据库迁移操作流程
flowchart LR
A[模型变更] --> B[aerich migrate]
B --> C[生成迁移文件]
C --> D[aerich upgrade]
D --> E[应用迁移]
E --> F[数据库更新完成]
1. 空数据库初始化
首次部署或需要重新初始化数据库时执行:
aerich init-db
2. 模型更新迁移
当数据模型发生变化时,执行以下命令:
步骤1: 生成迁移文件
aerich migrate --name "add_new_feature"
步骤2: 应用迁移
aerich upgrade
3. 查看迁移状态
aerich heads # 查看最新迁移
aerich history # 查看迁移历史
aerich downgrade # 回滚迁移
系统架构图
flowchart TD
subgraph "FastAPI应用层"
A[HTTP请求] --> B[中间件]
B --> C[路由分发]
C --> D[业务逻辑]
D --> E[数据访问]
end
subgraph "数据层"
E --> F[Tortoise ORM]
F --> G[MySQL数据库]
end
subgraph "迁移管理"
H[Aerich工具] --> I[迁移文件]
I --> J[版本控制]
end
启动应用
开发环境启动
uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
生产环境启动
uvicorn app.main:app --host 0.0.0.0 --port 8000 --workers 4
Docker部署
# 构建镜像
docker build -t c0726-backend .
# 运行容器
docker run -d -p 8000:8000 --name c0726-backend c0726-backend
验证安装
1. 健康检查
curl http://localhost:8000/
预期响应:{"message": "system works fine"}
2. API文档访问
打开浏览器访问:http://localhost:8000/docs
故障排除
常见问题
-
数据库连接失败
- 检查MySQL服务是否启动
- 验证数据库配置信息
- 确认数据库用户权限
-
迁移失败
- 检查迁移文件完整性
- 确认数据库版本兼容性
- 查看Aerich日志输出
-
依赖安装失败
- 检查Python版本兼容性
- 验证网络连接
- 尝试使用国内镜像源
日志查看
应用日志输出到 errors.log 文件,可通过以下命令查看:
tail -f errors.log
参考文件
- pyproject.toml - Aerich迁移配置
- app/tortoise_config.py - Tortoise ORM配置
- app/core/settings.py - 应用设置管理
- .config/development.database.json - 数据库连接配置
- Dockerfile - Docker容器配置
- app/main.py - FastAPI应用入口
索引
本指南详细介绍了邮轮穿舱件管理系统后台的完整安装和配置流程。重点强调了Aerich数据库迁移工具的使用方法,包括空数据库初始化和模型更新迁移两个核心场景。通过遵循本指南,您可以成功部署和配置系统,确保数据库迁移的正确执行。
系统采用模块化设计,配置管理清晰,支持多环境部署。Aerich工具提供了可靠的数据库版本控制机制,确保数据模型变更的安全性和可追溯性。