问题标签 [pgloader]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
232 浏览

postgresql - postgresql - pgloader - 引号处理

我是 postgresql 的新手,刚开始使用它。我正在尝试将文件加载到表中并面临一些问题。

示例数据 - 文件 file1.RPT 包含以下格式的数据

下面是使用的加载脚本

但是,上面的脚本不起作用,并且没有将任何数据加载到表中。我不确定这里有什么问题。我的理解是必须成功加载第一行数据(因为我已经给出了可选的括起来)并且第二行也必须加载(因为我试图逃避双引号)。

请求帮助以得到相同的纠正。

谢谢你。

0 投票
1 回答
697 浏览

mysql - 使用 PGLoader MySQL 到 Postgres 将 NULL 和 '0000-00-00 00:00:00' 转换为非 NULL

当使用 pgloader 将表从 MySQL 移动到 Postgres 时,我遇到的一个问题是某些源 MySQL 表可以在字段中包含一个NULL0000-00-00 00:00:00datetime,并且对其中一些列的转换被证明是有问题的。

我经常遇到的一个示例错误是: ERROR Database error 23502: null value in column "created_at" violates not-null constraint.

鉴于该值必须为非空值,理想的 CAST 语句是什么?我用过 : --cast "type date drop not null drop default using zero-dates-to-null",如果我理解正确的话,它会转换为NULLPostgres 中的一个值。是否有关键字可以转换为特定日期或非空值?也许是一种更理智的方法?

我已经考虑修改源表,使它们的日期类似于纪元时间,但这充其量只是一个临时的破解,并且会根据 MySQL 表更改一些报告。

0 投票
0 回答
363 浏览

python - 使用什么编码来表示 DBF (CDX) 索引

我正在尝试使用开源解决方案从几个 FoxPro 表中提取数据。有几个.dbf表和相关的.cdx索引。我遇到的问题是表格中的两列由非标准字符组成。这些列是其他表的外键。为了提取数据,我需要一种方法/程序来识别这些符号,以便可以执行连接。

这似乎是为密钥找到正确编码的问题。但是,我已经详细介绍了我的各种尝试,以防我离兔子洞太远而无法看到更好的解决方案。

1.Pythondbf模块

我对 pythondbf模块最幸运。我可以执行以下操作并实际看到键:

我已尝试导出此数据,但出现错误:

我不知道使用什么编码。

2.pgdbf

我使用的另一种方法是pgdbf在 Debian VirtualBox 上安装(版本 0.6.2)。这使我可以将表转换为 Postgres。我使用默认设置,

但是,似乎没有转换外键列。这些列显示为空白,并且对它们执行外部连接会产生远大于应有的结果。我在其中两个表上使用 FoxPro 执行了连接的结果。一个表有 650404 行,另一个有 149253 行。两个外键上的完全外连接的结果产生了一个 650404 的表。

FoxPro 代码是

当我在转换后的 Postgres 表中尝试相同的连接时,VirtualBox 空间不足(生成的行数远远超过 650404 行)。这似乎意味着外键没有被转换,并且连接在所有内容上都匹配。

Postgres 查询是

3. pgloader

我开始玩弄pgloader,但它似乎也无法直接处理.cdx文件\索引。

0 投票
0 回答
115 浏览

postgresql - 如何通过跳过索引来运行 pgloader?

是否可以运行 pgloader 以排除索引?当整个过程完成时,我总是可以在最后创建索引。

我的数据库是 10GB,我收到一个堆耗尽错误:

我正在使用命令:

pgloader mysql://root:@localhost/mydb postgresql:///mydbpsql

0 投票
0 回答
138 浏览

postgresql - 对于带有 postgresql 的 pgloader 的 python 列表,我应该使用什么类型?

我的数据库如下所示:

pgloader csv.load然后我想通过在 PostgreSQL 表中加载数据库来执行以下文件:

但我得到了错误:

我应该使用什么类型来代替text条目 g?

0 投票
0 回答
362 浏览

postgresql - 无法在 :UNIX(端口 5432)连接到 pgsql:CL-POSTGRES::USER 的值为 NIL,它不是 STRING 类型

我使用 docker 映像 ( docker pull ubuntu),通过 apt-get 安装了 postgresql,然后想要运行以下脚本:

为了执行我在 shell 中键入的脚本:pgloader csv.load执行上面的代码。

不幸的是,我总是收到警告:

我已经安装了 apt-get -y install sbcl gcl,但是错误并没有消失。有什么建议可以解决这个问题吗?我发现这个问题经常发生在 docker 图像上......


编辑:

我基本上可以设置一个 ubuntu 16.04 docker 映像并通过 apt-get 安装 postresql 和 pdgloader 吗?我的方法可以吗?我只想在图像中本地运行数据库查询...

0 投票
0 回答
381 浏览

mysql - pgloader mysql 到 Postgres 命令行排除表

我有以下有效的命令。

pgloader --root-dir /tmp/ --with "batch rows = 500" --cast "type datetime to timestamp drop not null using zero-dates-to-null" --cast "type tinyint to smallint drop typemod" - -cast "type timestamp to timestamp drop not null using zero-dates-to-null" --cast "type enum to varchar" --cast "type char to varchar" --cast "type date to date drop not null using zero-dates-to-null" --cast "type enum to varchar" --cast "type date to date drop not null using zero -dates-to-null" mysql://XXXXX:YYYYY@127.0.0.1/test postgresql://XXXXX@127.0.0.1:5432/test

有排除表的选项吗?

谢谢

0 投票
0 回答
67 浏览

postgresql - 为默认值创建表时 pgloader 引用处理问题

我正在尝试将我的数据库从 maria DB 迁移到 PGSQL。

我有一个脚本文件

运行后我得到一些日志和错误:

在 mysql DB 我有一张桌子ao_e8b6cc_git_hub_event

此表包含git_hub_id默认值为 0 的列 STRING

我认为问题在text not null default ''0''

pgloader 使用两个单引号。我该如何解决?

0 投票
0 回答
89 浏览

postgresql - 使用 pgloader 处理具有三个或更多“0”的字符串时遇到问题

我正在将大型 .csv 文件加载到数据库中,并希望使用 pgloader,因为它能够跳过和记录错误记录。但是我经常得到

ERROR PostgreSQL Database error 22021: invalid byte sequence for encoding "UTF8": 0x00

我首先想到的是由于0x00我的数据中的字符。我尝试了不同的方法来删除这些无济于事,直到我注意到一些变量,例如具有三个或更多0字符的时间戳似乎导致了问题。例如17:46:30 +0000。有谁知道如何在不更改我的数据的情况下处理这个问题?我大约 2/3 的记录有这个问题。理想情况下,我正在寻找允许我使用相同过程导入数据的修复程序。

0 投票
1 回答
1145 浏览

postgresql - 如何修复“无法解码八位字节序列#(130)”。在 pgloader

我正在尝试使用pgloader将数据库从 sqlite 迁移到 postgresql 。我的 sqlite db 是 data.db,所以我试试这个

输出:

关于这个问题的想法?先感谢您