如何将数据从 SQL Server 导出到 PostgreSQL?

8

我需要将所有表从SQL Server导出到PostgreSQL。

尝试:我尝试使用SQL Server IDE,但在某个阶段它会提示数据类型不同的错误。

问题:我该如何从SQL Server导出数据到PostgreSQL?COPY是否能完成我的工作?如果是的话,那么如何导出包括记录在内的所有表?


2
将数据导出为CSV/文本格式,并使用COPY(或任何其他可以处理CSV/文本文件的工具)将其导入Postgres。 - user330315
@a_horse_with_no_name,+1 谢谢你。 - Sarfaraz Makandar
5个回答

7

您不能将数据从MSsql导出,然后导入到PostgreSql中,因为它们的语法和数据类型不同。但是,您可以使用工具将数据从mssql迁移到postgreSql。

更多信息请参见主题从MS SQL迁移数据到PostgreSQL?


7

使用 https://dbeaver.io/

  1. 创建 MS SQL 和 PostgreSQL 数据库连接(登录)
  2. 在 PostgreSQL 中创建目标表(与 MS SQL 结构相同)
  3. F5 查看新表
  4. 右键单击新表 -> '导入数据' -> 将出现 '数据传输' 窗口
  5. 选择 'Table' 类型,然后点击 '下一步' -> 您将看到 '选择输入对象',在这里您可以从 MS SQL 连接中选择表
  6. 只需点击 '下一步' 并检查所需的设置,完成 :D

1

首先将模式导出到文件中,然后针对PostgreSQL运行该文件,直到您删除所有不兼容性。

您可以尝试导出要导出的数据,但最好编写Python脚本进行迁移。


1
使用https://dbeaver.io/,就像An Le所提到的那样。
经过40年的数据库开发,迁移数据库数据仍然是一个挑战。DBeaver是一个免费的数据迁移工具。但您仍然需要迁移模式。
从您的SQLServer数据库或模式的上下文菜单中选择Tools > Create new Task > Common > Data Export,您将生成SQL插入文件或CSV文件。对于不同类型数据库之间的迁移,请使用CSV文件。
SQL Server迁移工具的缺点。
无法迁移包含布尔值的行。 导出数据时出现迁移数据时出现错误,提示值不是布尔值,尽管源列和目标列都是布尔类型。
一张表迁移失败后无法继续下一张表的迁移。 SQL Server - 单个错误会导致所有迁移停止,即使这些表与最初的错误无关。
反复配置工具以尝试导出数据是浪费时间。 SQL Server 迁移任务不保存源连接和目标连接的配置。而且向导不友好,花费时间进行配置非常令人沮丧。我认为迁移项目已经被放弃了至少10年。

1

使用内置的SSIS工具和管理工作室有一种非常简单的方法。你可以在这里找到详细的答案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接