将MySQLdump导入PostgreSQL架构

时间:2017-03-06 23:44:46

标签: postgresql

我有一个使用MySQL作为其数据库的Web应用程序。由于该项目的过程发生了变化,我希望摆脱MySQL并使用PostgreSQL和模式。具体来说,我正在构建一个多租户Web应用程序,其中每个租户使用PostgreSQL包Django Tenant Schemas在数据库中获取自己的架构。该项目使用MySQL已经使用了大约一年,但只有一个用户。这意味着MySQL数据库中的所有记录都可以放入PostgreSQL数据库中的一个模式中。

我想知道将所有用户数据从MySQL移动到PostgreSQL数据库中的单个模式中会涉及到什么。

我发现this tool用于将MySQL转储转换为PostgreSQL友好格式,但它没有说明我如何将该转储导入特定模式。

您对我如何实现这一目标有什么想法吗?

2 个答案:

答案 0 :(得分:1)

看看pgloader(http://pgloader.io/howto/pgloader.1.html)。以下是其工作原理的基本示例:

createdb pagila  
pgloader mysql://user@localhost/sakila postgresql:///pagila 

答案 1 :(得分:0)

像这样包装你转换的MySQL转储:

BEGIN;
SET LOCAL search_path = desired_schema;
<dump goes here>
COMMIT;

然后

  1. 将在desired_schema
  2. 中创建未使用显式模式限定符创建的所有对象
  3. 一切都将在一个事务中完成,所以如果某个语句失败,一切都将被撤消。