postgresql - 如何将 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;```
解决方案
推荐阅读
- ruby-on-rails - 如何使用 iframe 在此应用的另一个页面中显示 rails 应用的页面?
- javascript - Firefox blocking ajax post request
- ios - Should I use `weak self` when making asynchronous network request?
- python - 加速完美掉期计算 - 避免循环
- php - 如何使用 PECL 安装 PHP 扩展(使用 Homebrew)
- python - 函数不更新全局变量
- c++ - 不使用双指针语法创建基于堆的二维数组?
- c# - 将具有 app.config 和 .settings 文件的应用程序移植到 .Net Core 后,如何防止“app.config”错误?
- html - 即使父元素的高度设置为“100vh”,子元素也不包含在视口高度中
- javascript - 尝试使用 ajax 在 html 按钮上单击 sendmail.php 页面上执行 php 脚本