【问题标题】:Migrate from H2 to PostgreSQL从 H2 迁移到 PostgreSQL
【发布时间】:2022-12-12 20:16:51
【问题描述】:

我需要在 WSO2 API 管理器中用 PostgreSQL 替换 H2。由于目前有数据保存在 H2 上,我需要将它传递给 PostgreSQL。

我找到了命令

SCRIPT TO 'dump.sql'

将数据导出到 .sql 文件,但我无法使用它,因为我没有获得访问数据库的凭据,所以我不得不从 H2 生成的 .mv.db 文件中检索数据。在这些文件上,数据未加密,但密码显然已加密。要将数据导出到 .sql 文件,我使用了命令

java -cp h2-*.jar org.h2.tools.Recover -dir file_path -db file_name.

.sql 文件生成正确,但是当我尝试使用命令将它们导入 PostgreSQL 时

psql -U db_user db_name < dump_name.sql

出现了许多语法错误,可能是由于 H2 和 PostgreSQL 方言的不兼容。有没有办法导出数据,然后可以将其导入 PostgreSQL?或者,是否有其他方法来迁移数据?

【问题讨论】:

    标签: sql postgresql wso2 h2


    【解决方案1】:

    这正在改变数据库供应商,我们不支持此类用例。里面有不同的脚本/[PRODUCT_HOME]/dbscripts文件夹,您需要使用正确的脚本设置目标数据库(在您的情况下为 PostgreSQL)。这是由于不同数据库供应商之间存在差异的性质。数据类型和模式因数据库供应商而异。

    正确的做法是通过迁移。您可以使用 PostgreSQL 设置新环境,并使用第三方工具或数据库供应商提供的工具将数据从 H2 迁移到 ProstgreSQL。没有直接的方法可以将数据库从 H2 更改为 PostgreSQL。

    有关产品迁移的更多信息 - https://apim.docs.wso2.com/en/latest/install-and-setup/upgrading-wso2-api-manager/upgrading-guidelines/

    【讨论】:

      【解决方案2】:

      WSO2 没有任何用于跨数据库迁移的脚本或工具。但是,您可以使用 API 控制器 [1] 将 API、应用程序从以前使用 H2 DB 的环境迁移到使用 PostgreSQL 的新环境。

      [1] - https://apim.docs.wso2.com/en/latest/install-and-setup/setup/api-controller/getting-started-with-wso2-api-controller/

      【讨论】:

        猜你喜欢
        • 2016-11-02
        • 2016-08-13
        • 2018-02-05
        • 2017-04-28
        • 1970-01-01
        • 2017-02-14
        • 1970-01-01
        • 2019-03-08
        • 2010-09-06
        相关资源
        最近更新 更多