mirror of
https://github.com/snailyp/gemini-balance.git
synced 2026-09-07 00:36:36 +08:00
feat(sqlite): 将 SQLite 数据库迁移到数据目录
- 创建 data 目录存放 SQLite 数据库 - 更新使用 SQLite 的文档
This commit is contained in:
@@ -91,6 +91,12 @@ app/
|
|||||||
* `-p 8000:8000`: 将容器的 8000 端口映射到主机的 8000 端口。
|
* `-p 8000:8000`: 将容器的 8000 端口映射到主机的 8000 端口。
|
||||||
* `--env-file .env`: 使用 `.env` 文件设置环境变量。
|
* `--env-file .env`: 使用 `.env` 文件设置环境变量。
|
||||||
|
|
||||||
|
> 注意:如果使用 SQLite 数据库,需要挂载数据卷以持久化数据:
|
||||||
|
> ```bash
|
||||||
|
> docker run -d -p 8000:8000 --env-file .env -v /path/to/data:/app/data gemini-balance
|
||||||
|
> ```
|
||||||
|
> 其中 `/path/to/data` 是主机上的数据存储路径,`/app/data` 是容器内的数据目录。
|
||||||
|
|
||||||
#### b) 用现有的docker镜像部署
|
#### b) 用现有的docker镜像部署
|
||||||
|
|
||||||
1. **拉取镜像**:
|
1. **拉取镜像**:
|
||||||
@@ -109,6 +115,12 @@ app/
|
|||||||
* `-p 8000:8000`: 将容器的 8000 端口映射到主机的 8000 端口 (根据需要调整)。
|
* `-p 8000:8000`: 将容器的 8000 端口映射到主机的 8000 端口 (根据需要调整)。
|
||||||
* `--env-file .env`: 使用 `.env` 文件设置环境变量 (确保 `.env` 文件存在于执行命令的目录)。
|
* `--env-file .env`: 使用 `.env` 文件设置环境变量 (确保 `.env` 文件存在于执行命令的目录)。
|
||||||
|
|
||||||
|
> 注意:如果使用 SQLite 数据库,需要挂载数据卷以持久化数据:
|
||||||
|
> ```bash
|
||||||
|
> docker run -d -p 8000:8000 --env-file .env -v /path/to/data:/app/data ghcr.io/snailyp/gemini-balance:latest
|
||||||
|
> ```
|
||||||
|
> 其中 `/path/to/data` 是主机上的数据存储路径,`/app/data` 是容器内的数据目录。
|
||||||
|
|
||||||
### 本地运行 (适用于开发和测试)
|
### 本地运行 (适用于开发和测试)
|
||||||
|
|
||||||
如果您想在本地直接运行源代码进行开发或测试,请按照以下步骤操作:
|
如果您想在本地直接运行源代码进行开发或测试,请按照以下步骤操作:
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
"""
|
"""
|
||||||
数据库连接池模块
|
数据库连接池模块
|
||||||
"""
|
"""
|
||||||
|
from pathlib import Path
|
||||||
from databases import Database
|
from databases import Database
|
||||||
from sqlalchemy import create_engine, MetaData
|
from sqlalchemy import create_engine, MetaData
|
||||||
# from sqlalchemy.orm import sessionmaker # 不再需要
|
# from sqlalchemy.orm import sessionmaker # 不再需要
|
||||||
@@ -13,7 +14,11 @@ logger = get_database_logger()
|
|||||||
|
|
||||||
# 数据库URL
|
# 数据库URL
|
||||||
if settings.DATABASE_TYPE == "sqlite":
|
if settings.DATABASE_TYPE == "sqlite":
|
||||||
DATABASE_URL = f"sqlite:///{settings.SQLITE_DATABASE}"
|
# 确保 data 目录存在
|
||||||
|
data_dir = Path("data")
|
||||||
|
data_dir.mkdir(exist_ok=True)
|
||||||
|
db_path = data_dir / settings.SQLITE_DATABASE
|
||||||
|
DATABASE_URL = f"sqlite:///{db_path}"
|
||||||
elif settings.DATABASE_TYPE == "mysql":
|
elif settings.DATABASE_TYPE == "mysql":
|
||||||
if settings.MYSQL_SOCKET:
|
if settings.MYSQL_SOCKET:
|
||||||
DATABASE_URL = f"mysql+pymysql://{settings.MYSQL_USER}:{settings.MYSQL_PASSWORD}@/{settings.MYSQL_DATABASE}?unix_socket={settings.MYSQL_SOCKET}"
|
DATABASE_URL = f"mysql+pymysql://{settings.MYSQL_USER}:{settings.MYSQL_PASSWORD}@/{settings.MYSQL_DATABASE}?unix_socket={settings.MYSQL_SOCKET}"
|
||||||
|
|||||||
Reference in New Issue
Block a user