This is an English translation of a Japanese blog. Some content may not be fully translated.
🐳

Commands for Copying Data to PostgreSQL on Docker

Preparation

Generate the target file. Loading MoneyForward household account detail data into PostgreSQL. Removing character encoding issues and unnecessary rows.

cat 収入・支出詳細_*.csv > import.csv
nkf -w --overwrite import.csv
sed -i '/計算対象/d' import.csv
sed -i -e "s/\"-/\"/g" import.csv

Assumed Workflow: Copy File to Docker Host Then Execute

docker cp import.csv docker_postgres_1:/tmp/import.csv
docker exec docker_postgres_1 cat /tmp/import.csv

docker exec -it docker_postgres_1 psql -U postgres metabase -c "truncate table kakeibo"
docker exec -it docker_postgres_1 psql -U postgres metabase -c "COPY kakeibo FROM '/tmp/import.csv' with csv header encoding 'UTF8'"

Notes

DDL memo


docker exec -it docker_postgres_1 psql -U postgres metabase

drop table kakeibo;
CREATE TABLE public.kakeibo (
    target_flg numeric,
    target_date date,
    item_detail text,
    ammount numeric,
    bank text,
    primary_item character varying(30),
    secondary_item character varying(30),
    item_memo text,
    transfer_flg numeric,
    item_id character varying(30)
);
Suggest an edit on GitHub