Как импортировать файл CSV в базу данных Postgres Docker? - PullRequest
2 голосов
/ 03 апреля 2019

У меня запущен образ docker postgres, который я создаю через Dockerfile. В Dockerfile я копирую свой CSV, который находится в каталоге / data в / data / на докере. Как это:

    COPY /data/* /data/

Я также копирую свой файл sql в точку входа в докер, чтобы он выполнялся при загрузке контейнера. Теперь здесь возникает проблема. В 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;```
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...