wger项目Open Food Facts数据导入指南
2025-07-08 05:01:57作者:平淮齐Percy
概述
本文将详细介绍如何在wger健身管理系统中导入Open Food Facts(开放食品数据库)的产品数据。Open Food Facts是一个包含大量食品营养信息的开源数据库,将其导入wger系统可以极大地丰富系统的食品营养数据库。
准备工作
在开始导入前,请确保:
- 已安装Docker和Docker Compose
- 系统有足够的磁盘空间(建议至少50GB可用空间)
- 已安装Python环境
详细导入步骤
第一步:下载数据库转储文件
Open Food Facts提供了完整的数据库转储文件,我们需要先下载这个文件:
cd dump
wget https://static.openfoodfacts.org/data/openfoodfacts-mongodbdump.tar.gz
tar xzvf openfoodfacts-mongodbdump.tar.gz
这个文件通常很大(约10GB),解压后会更大,请确保有足够的存储空间。
第二步:启动MongoDB容器并导入数据
使用Docker Compose启动MongoDB服务:
docker compose up
然后执行数据导入命令:
docker compose exec mongodb mongorestore --username off --password off-wger -d admin -c products /dump/off/products.bson
这个导入过程可能需要数小时,具体取决于您的硬件性能。
第三步:运行wger导入脚本
当MongoDB中的数据导入完成后,执行wger的导入脚本:
python manage.py import-off-products
这个脚本会将MongoDB中的食品数据转换为wger系统可用的格式。
第四步:(可选)更新数据固件
如果需要将导入的数据保存为固件供后续使用:
python manage.py dumpdata nutrition > extras/scripts/data.json
cd extras/scripts
python filter-fixtures.py
zip ingredients.json.zip ingredients.json
zip weight_units.json.zip weight_units.json
zip ingredient_units.json.zip ingredient_units.json
清理工作
导入完成后,为节省磁盘空间,建议删除临时文件:
docker compose down
rm dump -r openfoodfacts-mongodbdump.tar.gz dump/dump
注意事项
- 整个过程会消耗大量系统资源,建议在服务器上执行
- 导入时间可能很长,请耐心等待
- 可以使用MongoDB管理界面(http://localhost:8081)监控导入进度
- 默认管理员账号为admin/pass
通过以上步骤,您就可以将Open Food Facts的丰富食品数据整合到wger系统中,为用户提供更全面的营养信息支持。