my opinion is my own

Docker上のPostgreSQLへCopyする際のコマンド

前準備

対象ファイルの生成。MoneyForwardの家計簿詳細データをPostgreSQLへ突っ込んでいます。文字コードとか不要な行などを消しています。

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

Docker側のホストへファイルをコピーをした上で実行する想定

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'"

補足

DDLメモ


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)
);
---

関連しているかもしれない記事


#Docker #PostgreSQL