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-composeでPostgreSQL構築
- ArmのDocker環境でMetabase構築
- PostgreSQLのSQLの処理順序
- Dockerのエラー対応(docker Got permission denied~)
- Aurora PostgreSQLでPostGIS(位置情報)を使用する