基于 docker 和 docker compose
本仓库仅用于快速配置 bangumi 开发环境,不包含任何 bangumi 代码。
mysql 容器的内置数据位于 ./sql 文件夹内,
git clone https://github.com/bangumi/dev-env.git bangumi-dev-env --depth=1 --branch gh-pages
cd bangumi-dev-env
docker compose up --build -d
# start mysql binlog message watcher, optional
cd infra
docker compose up -d
如果你不使用 docker 或者 docker compose,也可以下载并导入 https://bangumi.github.io/dev-env/dist.sql 文件,此文件包含了本仓库的所有 sql 文件。
墙内可以访问 jsdelivr 镜像网址 https://cdn.jsdelivr.net/gh/bangumi/dev-env@gh-pages/dist.sql
./dist.sql 会 drop 旧数据表并且插入数据,可以多次运行。
./infra/
文件夹包含 debezium 等组件,用于解析 mysql 的 binlog。
基础的 http server 不需要这些服务,可以不启动。
如果你不在运行 docker compose 的机器上进行开发(也就是说不使用localhost
或者127.0.0.1
来链接到数据库),
设置 CHII_HOST
环境变量来解决 kafka 的 KAFKA_ADVERTISED_LISTENERS
问题
git pull
bash scripts/reload.sh
https://github.com/bangumi/dev-docs#api
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
- ./sql/schema/: DDL 相关 (
create table ...
) - ./sql/data/: DML 相关 (
insert into ...
) - ./sql_script_load_order.txt: sql 文件执行顺序定义,按行数正序执行
- 把 sql 文件放到对应目录
- 更新./sql_script_load_order.txt
- 更新./test.py,如果添加了新表
# 删除旧数据及docker环境
docker compose down -v --remove-orphans
sudo rm -rf ./data
# 测试
docker compose up --build -d
python test.py # 需要等docker container准备完成
un-processed/
文件夹中是已经导出但还没经处理,目前的开源后端服务器也还未使用的表。