首页 > 解决方案 > 如何将 CSV 文件导入 docker postgres 数据库?

问题描述

我正在运行一个 docker postgres 映像,我正在通过 Dockerfile 构建它。在 Dockerfile 中,我将位于 /data 目录中的 CSV 复制到 docker 机器中的 /data/ 中。像这样 :

    COPY /data/* /data/

我还将我的 sql 文件复制到 docker 入口点,以便在容器启动时执行。现在问题来了。在 proeve_schema.sql 我正在创建一个表:

    CREATE TABLE COMPANY(
      ID INT PRIMARY KEY     NOT NULL,
      ORDERDATE      TEXT,
      CASETYPE       TEXT,
      CASEID         TEXT,
    );

我正在尝试将数据从我的 CSV 复制到表中:

    COPY sample_data
    FROM '/data/bom_sampledata_1000.csv' DELIMITER ',' CSV HEADER;

但是,当我尝试运行我的容器时,它在没有任何错误日志的情况下崩溃了。当我删除 COPY 语句时,它运行良好并生成了我的表。此外,CSV 文件存在于容器上。

Dockerfile:

    RUN mkdir -p /data
    #copy all data to the container 
    COPY /data/* /data/
    COPY proeve_schema.sql /docker-entrypoint-initdb.d/```
    RUN chown postgres /data
    RUN chmod +w /data

proeve_schema.sql:

    CREATE TABLE COMPANY(
      ID INT PRIMARY KEY     NOT NULL,
      ORDERDATE      TEXT,
      CASETYPE       TEXT,
      CASEID         TEXT,
      CUSTOMERNUMBER TEXT,
    );

    COPY sample_data
    FROM '/data/data.csv' DELIMITER ',' CSV HEADER;```

标签: postgresqldocker

解决方案


推荐阅读