基于 docker 和 docker-compose
本仓库仅用于快速配置 bangumi 开发环境,不包含任何 bangumi 代码。
git clone https://github.com/bangumi/dev-env.git bangumi-dev-env --depth=1
cd bangumi-dev-env
docker-compose up --build -d
# start mysql binlog message watcher, optional
cd mq
docker-compose up -dmysql 容器的内置数据位于 ./sql 文件夹内,
如果你不使用 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
此 SQL 不支持多次运行。如果运行失败请删除旧数据库中所有表后重试。
./mq/ 文件夹包含 kafka 和 debezium 等组件的配置文件,用于解析 mysql 的 binlog。
基础的 http server 不需要这些服务,可以不启动。
如果你不在运行 docker-compose 的机器上进行开发(也就是说不使用localhost或者127.0.0.1来链接到数据库),
设置 CHII_HOST 环境变量来解决 kafka 的 KAFKA_ADVERTISED_LISTENERS 问题
git pull
bash scripts/reload.shpython -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/ 文件夹中是已经导出但还没经处理,目前的开源后端服务器也还未使用的表。