首页
/ wger项目Open Food Facts数据导入指南

wger项目Open Food Facts数据导入指南

2025-07-08 05:01:57作者:平淮齐Percy

概述

本文将详细介绍如何在wger健身管理系统中导入Open Food Facts(开放食品数据库)的产品数据。Open Food Facts是一个包含大量食品营养信息的开源数据库,将其导入wger系统可以极大地丰富系统的食品营养数据库。

准备工作

在开始导入前,请确保:

  1. 已安装Docker和Docker Compose
  2. 系统有足够的磁盘空间(建议至少50GB可用空间)
  3. 已安装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

注意事项

  1. 整个过程会消耗大量系统资源,建议在服务器上执行
  2. 导入时间可能很长,请耐心等待
  3. 可以使用MongoDB管理界面(http://localhost:8081)监控导入进度
  4. 默认管理员账号为admin/pass

通过以上步骤,您就可以将Open Food Facts的丰富食品数据整合到wger系统中,为用户提供更全面的营养信息支持。