问题标签 [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 投票
1 回答
478 浏览

postgresql - 安装 pgloader 时“无法加载任何替代品”

我目前正在尝试在 RedHat Enterprise Linux 6 机器上安装 pgloader (v.3.3.1)。我已经下载了 tar.gz 并提取了文件。根据需要,我使用

而在目录中以构建程序。安装 pgloader 需要一个 Lisp 编译器,因此我为此使用了当前版本的 SBCL (1.2.7)。在操作过程中,我收到有关 libssl 替代方案的错误,尽管我在系统上安装了最新版本的 openssl-devel。

每当我选择接受、重试或继续时,安装总是失败。如果有人知道如何成功,我将不胜感激。

0 投票
1 回答
1053 浏览

postgresql - 列中的 Postgres-pgloader-transformation

将平面文件加载到 postgres 表中。在读取文件并加载它时,我需要做一些转换。

请帮助我,如何使用pgloader来完成?

谢谢

0 投票
1 回答
554 浏览

postgresql - Is it possible to insert and replace rows with pgloader?

My use case is the following: I have data coming from a csv file and I need to load it into a table (so far so good, nothing new here). It might happen that same data is sent with updated columns, in which case I would like to try to insert and replace in case of duplicate.

So my table is as follows:

And incoming csv file is like this:

It might happen that sometime in the future I get another csv file with:

Right now what is happening is when I run for the first file, everything is fine, but when I execute for the second one I'm getting an error:

I load data using:

And my csv.load file looks like this:

Is what I'm trying to do possible with pgloader?

I also tried dropping constrains for the primary key but then I end up with duplicate entries in the table.

Thanks a lot for your help.

0 投票
1 回答
128 浏览

mysql - 从 MySQL 将数据加载到 Postgres

我有一个托管在 Amazon RDS 上的数据库。我正在开发一个带有 PostgreSQL 主数据库的 Rails 应用程序。Postgres 数据库需要使用来自 RDS 的数据进行更新。我需要从 MySQL 中提取记录,然后将其加载到 Postgres 中。

此外,这不是数据库迁移。

一种选择是在我的 rails 应用程序中创建一个辅助数据库 (MySQL)。但这似乎不是一个好的选择,因为我只需要在需要时而不是非常频繁地传输数据。

实现这一目标的最佳方法是什么?这可以通过pgloader完成吗?

更新

解决了我的问题。我只需要从 MySQL 读取,这工作正常。这种方法有什么缺点吗?

0 投票
1 回答
177 浏览

postgresql - 尝试通过 pgloader 仅加载数据时如何解决此约束错误?

我有以下 .load 文件

我得到错误

我可以在不删除密钥的情况下加载数据吗?我也尝试将disable triggers参数添加到 with 子句中,但效果不佳。

我使用的是 postgre 9.6,pgloader 的版本号是 3.3.2

0 投票
2 回答
1119 浏览

postgresql - 当双引号中有 \n (换行符)时,如何使用 pgloader 或 PostgreSQL 副本解析 CSV?

我有这样的 csv 行:

我想使用 pgloader ( http://pgloader.io/ ) 或 PostgreSQL COPY ( https://www.postgresql.org/docs/9.6/static/sql-copy.html ) 导入这些数据。我的问题是,根据 CSV 标准,在引用的字段值内可能有换行符 (\n)。但是 pgloader 和 COPY 命令将其视为全新的数据行,而不是其中包含换行符的一列。

我的 COPY 命令 我的 pgloader 命令

我从 PostgreSQL 文档和谷歌搜索了很多。

我发现的唯一一件事是:Parsing CSV file with \n in double quotes fields but awk is too slow for a file with more than 100万行。

关于如何做的任何提示?

我的首选是 pgloader,但我可以接受使用 sed 或 perl 作为正则表达式代理来处理 linux shell 脚本中的文件。

关于如何做的任何线索?

0 投票
1 回答
482 浏览

mysql - 使用 Pgloader 从 MariaDB 转换后使用带有泰语文本的 tsearch 的 Postgresql 编码问题

我正在尝试将包含泰语和英语的 MySQL UTF8mb4 数据库转换为 Postgresql。在我尝试添加 tsearch 之前,这似乎进展顺利。让我概述所采取的步骤。

  • 安装这个泰语解析器https://github.com/zdk/pg-search-thai
  • 我从转储文件本地恢复生产副本到 MariaDB
  • 修复一些由于丢失而使 Postgresql 出错的枚举值。MariaDB 对他们很满意 :(
  • 将一些多边形转换为文本格式,因为 pgloader 不能优雅地处理它们。- 对新的 postgresql 数据库 testdb 运行 pgloader

    pgloader mysql://$MYSQL_USER:$MYSQL_PASSWORD@localhost/$MYSQL_DB postgresql://$PG_USER:$PG_PASSWORD@localhost/testdb

这似乎可行,该站点,一个 Laravel 站点,似乎可以运行,尽管由于 MariaDB 和 Postgresql 约束行为之间的差异,需要修复一些错误。但是,当我尝试为 tsearch 创建文本向量时,我遇到了编码问题。这是我需要建议的地方。

我得到的错误是ERROR: invalid byte sequence for encoding "UTF8": 0x80

如果我转储该表并恢复到新的 Postgresql 数据库中,我不会收到编码错误。

问题:

  • 将 UTF8mb4 用于 pgloader 的 Postgresql 的正确编码是什么?
  • 除了上述方法之外,还有什么方法可以检查数据是否正确 UTF8?
  • 是泰语解析器工具的问题吗?

任何有关如何解决此问题的建议将不胜感激。

干杯,

戈登

PS 我是一位经验丰富的开发人员,但不是经验丰富的 DBA。

0 投票
1 回答
1852 浏览

mysql - pgloader 可以排除 MySQL 表中的特定列吗?

我正在使用加载文件,pgloader并且我的 MySQL 数据库中有一个特别有问题的表,其日期时间格式错误。我想在迁移期间跳过该列。如何在加载文件中执行此操作?就像是:

0 投票
1 回答
471 浏览

postgresql - 导入带有包含转义分隔符的字段值的分隔文件

给定以下格式的分隔文件

  • 由管道字符分隔的字段|
  • 文本字段不带引号
  • 一些文本字段值包含转义的管道\|、转义的换行符\\n或转义的回车符\\r

成功加载此文件的正确pgloader选项组合可能是什么?

我试过了

这显然对我不起作用,因为pgloader看到四个字段而不是三个。

0 投票
2 回答
1411 浏览

mysql - pgloader not importing data from MySQL to Postgres

I tried the following command and it returns no errors but the data is not imported in my postgres database.

Database is already created in Postgres.

This is the result:

When I login to psql to look for the data, its not there. For example, for the table users 2 records were supposed to be imported as mentioned above by pgloader, but this is the result:

What is going wrong?