如何轻松地从 MySQL 迁移到 PostgreSQL?

2023-12-27

我想在现有的 MySQL 数据库(大约 40 个表,400 MB 数据)变得更大之前将其迁移到 Postgres。我在网上搜索并尝试了一些迁移脚本(其中一些可以找到here http://wiki.postgresql.org/wiki/Converting_from_other_Databases_to_PostgreSQL)。它们都不能无缝工作——如果只是一些我必须手动修复的小故障,那不会是问题,但生成的转储看起来根本不像有效的 PostgreSQL。

有没有人在不使用完整工作日的情况下成功迁移生产表 - 有没有简单的解决方案那个问题?

注意:我也会考虑商业产品(只要定价仍然可行)。


尽管 SQL 是一个标准,但如果每个服务器软件都没有实现扩展,它的功能就不够完整。从 MySQL 到 PostgreSQL 的转换并不简单,除非您的架构很简单。自动翻译脚本只能帮助您到此为止。

最好的方法是手动翻译模式,然后为数据本身编写自己的传输脚本。您还应该编写验证脚本以确保模式和数据正确传输。

这不是一个逃避的答案。如果您的数据库对于迁移来说足够重要,那么您自己花一些时间也很重要。最后,您花在解决怪异和微妙混乱上的时间至少与自动迁移脚本所导致的时间一样多,就像您自己迁移数据的时间一样。但是如果你自己动手,你就有机会利用 PostgreSQL 中 MySQL 中没有的功能,并且有机会做出只有有机会做第二次某事才能实现的各种改进。

硬着头皮去做吧。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何轻松地从 MySQL 迁移到 PostgreSQL? 的相关文章

  • 哪个是识别关系或非识别关系中的子表?

    在表之间的识别和非识别关系的上下文中 MySQL 文档大量将表称为父表和子表 如何判断哪个表是父表 哪个表是子表 子表 A K A 弱实体 http en wikipedia org wiki Weak entity 是一个表 其主键属性d
  • 在 MySQL 数据库上使用版本控制 (Git)

    我是一名 WordPress 设计师 开发人员 越来越多地使用版本控制 特别是 Git 尽管我确实在某些项目中使用 SVN 我目前正在使用 Beanstalk 作为我的远程仓库 将所有 WordPress 文件添加到我的存储库中是没有问题的
  • 如何在数据库中保存未来(!)日期

    这个问题专门涉及未来的日期和时间 对于过去的值 UTC 无疑是首选 我想知道是否有人对拯救生命的 最佳 方法有建议futureMySQL 数据库中的日期和时间 或者就此而言一般来说 特别是在该列可以保存不同时区时间的情况下 考虑到时区规则可
  • MySQL 中的 UDF 性能

    我注意到 当查询在 SELECT 或 WHERE 子句中调用 UDF 时 MySQL 查询执行时间的性能会呈指数级下降 有问题的 UDF 查询本地表以返回标量值 因此它们不仅执行算术表达式 而且充当相关子查询 我通过简单地删除 UDF 并使
  • PSQLException:大对象不能在自动提交模式下使用

    我正在使用 WildFly 10 Java EE JPA 和 Hibernate 最近我将我的应用程序从 MySQL 迁移到 PostgreSQL 在使用 MySQL 时 我会使用以下方法将图像存储在我的实体中 Lob Basic fetc
  • 在 MySQL 中创建布尔列并将 false 作为默认值?

    我想在 MySQL 中创建一个表boolean默认值为的列false 但它默认接受 NULL 你必须指定0 意思是假 或1 意思是 true 作为默认值 这是一个例子 create table mytable mybool boolean
  • MySql 从另一个表中减去一个表

    我有两个表 A 包含所有数据 表 B 从 A 中随机选择 25 的数据创建 所以 A 和 B 具有完全相同的列 也没有独特的列 我想做的是从 A 中减去 B 有什么想法吗 查看所有行A除了那些在B SELECT FROM A WHERE f
  • 使用nodejs的sequelize更新多对多连接表

    我有一个产品表和一个类别表 一个产品可以有多个类别 一个类别可以有多个产品 因此我有一个 ProductsCategories 表来处理多对多连接 在下面的示例中 我尝试将我的一款产品 ID 为 1 与 3 个不同的类别 ID 为 1 2
  • 未知的表引擎“InnoDB”

    最近 我发现如果我有好的硬件 我可以最大限度地提高 mysql 的性能 由于我一直在使用 InnoDB 所以我在 my ini 中添加了额外的配置 以下是新添加的配置 innodb data file path ibdata1 10M au
  • MySQL 中的 group_concat 性能问题

    我添加了一个group concat到一个查询并杀死了性能 添加之前和之后的解释计划是相同的 所以我对如何优化它感到困惑 这是查询的简化版本 SELECT curRow curRow 1 AS row number docID docTyp
  • Mysql 在给定日期时间范围内插入随机日期时间

    使用 SQL 我可以在给出范围的列中插入随机日期时间值吗 例如 给定一个范围2010 04 30 14 53 27 to 2012 04 30 14 53 27 我对范围部分感到困惑 因为我刚刚做了这个 INSERT INTO someta
  • mysqldb接口错误

    我对 mysqldb python 的 mysql 模块 有一个非常奇怪的问题 我有一个文件 其中包含用于在表中插入记录的查询 如果我从文件中调用函数 它就可以正常工作 但是当尝试从另一个文件调用其中一个函数时 它会抛出一个 mysql e
  • 使用 LIMIT/OFFSET 运行查询并获取总行数

    出于分页目的 我需要使用以下命令运行查询LIMIT and OFFSET条款 但我还需要计算该查询将返回的行数 而不需要LIMIT and OFFSET条款 我想运行 SELECT FROM table WHERE whatever ORD
  • 无法打开 phpmyadmin,require_once(./libraries/common.inc.php):无法打开流:没有这样的文件或目录

    当我做php usr share phpmyadmin index php 我明白了 PHP 警告 require once libraries common inc php 无法打开流 第 33 行 usr share phpmyadmi
  • 将一个大的 postgres 表拆分为多个 csv

    我正在使用以下 psql 查询连接到远程主机并将一个大表拆分为多个 csv 文件 psql h xx p xx U xx d xx c COPY select from table TO program split lines 1000 f
  • 重新启动我的 sql 时,jenkins 失败“sudo:不存在 tty,并且未指定 Askpass 程序 抱歉,请重试。”

    我刚刚配置了 jenkins 在预构建步骤中我尝试重新启动 jenkins 但最终出现以下错误 Commencing build of Revision c5b9f8daac092efc5396d80f568a2cf89ae8b697 or
  • 如何使用 MySQL 和 PHP 在数据库中存储标签?

    我想创建一个数据库来存储用户为其问题输入的标签 然后为发布的每个单独问题显示所有标签 像这里这样的东西 这是现在为我做所有事情的表 CREATE TABLE questions tags id INT UNSIGNED NOT NULL A
  • 如何从函数返回更新的行

    我对 postgres 很陌生 我想创建一个函数 如存储过程 来更新多行并选择受影响的行 这是我的声明 CREATE or replace FUNCTION set val val character varying 100 5 RETUR
  • Heroku 上的“PG::错误 - 数字字段溢出”

    我构建了一个应用程序来查询 Google Analytics 的过去 7 天的数据 一切都在本地进行 在 Heroku 上 该过程运行顺利 直到它尝试获取今天日期的数据 然后我收到以下错误 2012 10 29T02 32 02 00 00
  • 如何使用 SQL - INSERT...ON DUPLICATE KEY UPDATE?

    我有一个脚本可以捕获推文并将其放入数据库中 我将在 cronjob 上运行脚本 然后在我的网站上显示数据库中的推文 以防止达到 Twitter API 的限制 所以我不想在我的数据库中有重复的推文 我知道我可以使用 INSERT ON DU

随机推荐

  • 并发和协调运行时 (CCR) 学习资源

    我最近正在学习它的内部和外部并发和协调运行时 CCR http msdn microsoft com en us library bb905450 aspx为这项相对较新的技术寻找良好的学习资源非常困难 谷歌快速搜索后 Creedence
  • 如何在cmake中打印所有编译选项

    我的项目使用 cmake 一些编译选项是通过配置的set set CMAKE CXX FLAGS DEBUG g set CMAKE CXX FLAGS DEBUG CMAKE CXX FLAGS DEBUG O0 set CMAKE CX
  • UIGestureRecognizer 用于 UIView 的一部分

    我在 iOS 应用程序中使用 UIGestureRecognizer 但遇到了一些问题 我只希望手势在视图的某个区域起作用 因此我使用特定框架创建了一个新的 UIView 并将其添加到根视图中 手势工作正常 但现在唯一的问题是我无法单击新视
  • 如何使用 RSACryptoServiceProvider 解密加密文本?

    我已使用 RSACryptoServiceProvider 加密了文本 我导出了公钥和私钥 显然我只是想在解码器应用程序中公开公钥 所以我编写了如下代码 private const string PublicKey
  • 表单“onsubmit”没有被调用

    这是我的表格的一部分
  • 检查目录是否是符号链接?

    In os有一个函数os path islink PATH 它检查是否PATH是符号链接 但是如果当 PATH 是某个目录的符号链接时失败 相反 python 认为它是目录 os path isdir PATH 那么如何检查目录是否是链接呢
  • ConcurrentBag 实现中是否存在内存泄漏? [复制]

    这个问题在这里已经有答案了 可能的重复 ConcurrentBag 中可能存在内存泄漏吗 https stackoverflow com questions 5353164 possible memoryleak in concurrent
  • 如何在 Android 中发布图片

    我有这个表单 用于使用 HttpPost 将图像上传到服务器 我使用 HTML 表单完成了此操作 但它不适用于 Android 的 HttpPost 它回复 您没有选择要上传的文件 看来文件字段尚未发送
  • 在 iOS 上的广告中发送蓝牙 LE 数据

    我的应用程序作为蓝牙 LE 外围设备运行 我试图在广告中发送几个字节的自定义数据 func btStartBroadcasting peripheral CBPeripheralManager create an array of byte
  • 词形还原与词干提取之间有什么区别?

    我什么时候使用每个 另外 NLTK 词形还原是否依赖于词性 如果是的话不是更准确吗 短而密 http nlp stanford edu IR book html htmledition stemming and lemmatization
  • AOP::0 处错误,在两种不同方法上应用 aop 的绑定不一致

    我正在尝试在两个不同路径中的两种不同方法上应用 before 方面 class Service1 public Object applyX X x code class Service2 public OtherObject applyY
  • 如何控制 ggplot2 中的 bin 间隔?

    我无法正确控制垃圾箱是否来自例如 10 到 10 或从 0 到 20 当我说binwidth 20我得到前者 但我有从 1 开始的数据 我不希望间隔变为负值 这是我的问题的一个例子 testData data frame x c 1 4 6
  • 在 WPF 中按 Enter 键移动到下一个控件

    我想在 WPF MVVM 应用程序中按 Enter 键而不是 Tab 键时移动到下一个控件 我怎样才能实现这个目标 下面是我为此使用的附加属性 首先 示例用法
  • UITextView 内的动画 Gif

    我看了一下this https stackoverflow com questions 20930462 ios 7 textkit how to insert images inline with text问题 但没有成功 我也在努力避免
  • 在 MySQL 中比较时,转换为 varchar 或 varchar 为 int 更快吗?

    所以我有两个表 它们的 ID 引用同一对象 其中一个表将其存储为 varchar 另一个表将其存储为 int 我想要子查询 或者可能连接 这两个表 WHERE foo CAST bar AS UNSIGNED or WHERE CAST f
  • 睾丸:遇到声明异常

    我在 angular js 中定义了一个空模块 angular module todoList function 然后我想测试它 在我的conf js 我加载这些 javascript files JASMINE JASMINE ADAPT
  • 更改我的所有网站链接:最好的方法是什么? [复制]

    这个问题在这里已经有答案了 可能的重复 htaccess 重写以将根 URL 重定向到子目录 https stackoverflow com questions 990392 htaccess rewrite to redirect roo
  • 我应该如何避免记忆导致 Ruby 中的错误?

    对于如何避免由于可变状态而导致记忆错误是否存在共识 在此示例中 缓存结果的状态发生了变化 因此在第二次调用时给出了错误的结果 class Greeter def initialize greeting cache end def expen
  • Xcode 5 上的项目宽字匹配搜索

    我正在使用 Xcode 5 并且希望不是通过子字符串匹配而是通过精确匹配 或前缀匹配 来查找单词 例如 变量名 在文件范围搜索 Command F 中 我可以通过单击玻璃图标右侧的箭头按钮并选择 编辑查找选项 来使用文本搜索或正则表达式搜索
  • 如何轻松地从 MySQL 迁移到 PostgreSQL?

    我想在现有的 MySQL 数据库 大约 40 个表 400 MB 数据 变得更大之前将其迁移到 Postgres 我在网上搜索并尝试了一些迁移脚本 其中一些可以找到here http wiki postgresql org wiki Con