如何将CSV文件导入docker postgres数据库?

时间:2019-04-03 08:43:44

标签: postgresql docker

我正在运行一个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,
    );

我正在尝试将CS​​V中的数据复制到表中:

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

0 个答案:

没有答案