Simple command line utility for loading Branded Food Products csv into a MySQL/MariaDB database.
- ./config -- go type definitions for configuring the app.
- ./ds -- datasource interface implemented for mariadb. Feel free to implement a ds for your favorite database like postgres.
- ./ingest -- interface implemented for branded foods, where the csv gets translated into the model
- ./model -- go type definitions for loading the csv data
- ./schema -- schema for the mariadb database
- Install go v 13 or greater and a recent version of mariadb
- Download the branded foods and 'Supporting data for Downloads' csv from Food Data Central and unzip into a directory of your choice.
- Clone this repo into a directory of your choice and build the program:
go build -o bfpdloader main.go
- Create a schema:
mysql -u your-user -pyour-password -e'create schema bfpd'
- Install the schema using the one provided in the ./schema directory:
mysql -u your-user -pyour-password bfpd < bfpd-schema.sql
- In the build directory, create a config.yaml which matches the schema you just created:
url: 127.0.0.1
db: bfpd
pwd: your-password
user: your-user
- Load the nutrients table:
./bfpdloader -t NUT -i /your-csv-install-path/nutrient.csv
- Load the derivations table:
./bfpdloader -t DERV -i /your-csv-install-path/food_nutrient_derivation.csv
- Load the branded foods database
./bfpdloader -t BFPD -i /your-csv-install-path/bfpd/