Fre*_*red 18 sql-server migration postgresql
我环顾四周,似乎无法找到解决这个具体问题的任何东西.
将数据从MS SQL Server 2005数据库移动到Postgres安装(8.x)的最简单方法是什么?
我已经研究了几个实用程序,如"完全转换企业"等,它们都因为某种原因而失败,其中包括奇怪的错误,这些错误使得它更容易插入空值而不是实际数据(wth?).
我正在查看包含所有表的数据库,除了单个视图,没有存储过程,函数等.
在这一点上,我即将写一个小工具来为我做,我只是不相信这是必要的.当然有某种东西可以做到这一点?我甚至不太担心成本,虽然免费是可取的:)
Ehs*_*edi 14
我不知道为什么没有人提到使用健壮的MS SQL Server Management Studio的最简单和最简单的方法.
您只需使用内置的SSIS导入/导出功能即可.您可以按照以下步骤操作:
首先,您需要安装适用于Windows 的PostgreSQL ODBC驱动程序.根据CPU arch(x86/x64)安装正确的版本非常重要.
在Management Studio中,右键单击您的数据库:Tasks - > Export Data
选择SQL Server Native Client作为数据源.
选择.Net Framework Data Provider for ODBC作为目标驱动程序.
使用以下格式将连接字符串设置为数据库:
Driver = {PostgreSQL ODBC Driver(UNICODE)}; Server =; Port =; Database =; UID =; PWD =
在下一页中,您只需选择要导出的表.SQL Server将生成默认映射,您可以自由编辑它.可能你会遇到一些需要一些时间来解决的类型不匹配问题.例如,如果SQL Server中有布尔列,则应将其导出为int4.
Microsoft Docs提供了通过ODBC连接到PostgreSQL的详细说明.
PS:如果要查看已安装的ODBC驱动程序,则需要通过ODBC数据源管理器进行检查.
看一下软件目录.在Administration/development tools下,我看到DBConvert for MS SQL和PostgreSQL.可能还列出了其他类似的工具.
您可以使用MS DTS功能(我认为在最新版本中重命名为SSIS)。DTS 的一个问题是,在将数据加载到 pg 中时,我无法使其在每一行之后进行提交。如果您只有几行 100k 行左右,那还可以,但速度确实非常慢。
我通常最终会编写一个小脚本,以 CSV 格式从 SQLServer 转储数据,然后在 PostgreSQL 端使用 COPY WITH CSV。
不过,这两者都只处理数据。处理模式有点困难,因为数据类型不一定直接映射。但它可以轻松地与模式的静态加载一起编写脚本。如果模式很简单(例如只是 varchar/int 数据类型),则该部分也可以轻松地根据 INFORMATION_SCHEMA 中的数据编写脚本。
| 归档时间: |
|
| 查看次数: |
24628 次 |
| 最近记录: |