首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从MariaDB到PostgreSQL的物化视图数据库迁移

从MariaDB到PostgreSQL的物化视图数据库迁移
EN

Stack Overflow用户
提问于 2018-01-10 05:14:12
回答 1查看 1.6K关注 0票数 1

我一直在为我的公司使用MariaDB。MariaDB的问题是我不支持物化视图。虽然Flexview支持物化视图,但它存在以下问题。文件'b_table.sql‘具有

代码语言:javascript
复制
Create table matered_view AS
Select timestampdiff(YEAR,`m`.`birthday`,curdate()) AS `age`
From `transDB`.`members` `m` ...

Flexview的实用程序(convert.php)可以如下所示。

代码语言:javascript
复制
$ php convert.php transDB < b_table.sql > mem_mv.sql

然而,在mem_mv.sql中,您可以找到

代码语言:javascript
复制
CALL  flexviews.add_expr(@mvid, 'COLUMN', 'timestampdiff(YEAR,m.birthday,curdate )', 'age');

在这里签出'curdate',应该是"curdate()“。它还有很多其他的问题,我觉得很难解决。

因此,为了将数据库管理系统从MariaDB迁移到支持物化视图的PostgreSQL,我正在执行两个步骤,步骤1是将MariaDB实例恢复到MySQL DBMS,第2步是使用该模块将MySQL转换为PostgreSQL -

philipsoutham/py-mysql2pgsql

但是,在第二步,当我在我的来宾操作系统Ubuntu 16_4上执行以下命令时,我遇到了这个错误-

代码语言:javascript
复制
UnicodeEncodeError: 'ascii' codec can't encode character u'\ub144' in position 60: ordinal not in range(128).

迁移过程在中间中断--仍然有几个表是在PostgreSQL端成功创建的。实际上,韩国字符用于MariaDB中的表列描述/注释,这可能是导致错误的原因。有人对我的问题有什么建议吗?

EN

Stack Overflow用户

发布于 2018-02-01 13:51:20

我的问题完全解决了。

也就是说,对于"UnicodeEncodeError:'ascii‘编解码器无法编码“问题,我为相关的python源文件嵌入了这3行代码。

代码语言:javascript
复制
import sys 
reload(sys) 
sys.setdefaultencoding('utf-8')

当我触及上述解决方案时,我提到了下面关于github的问题(特别是elkan1788 1788的评论)。

https://github.com/apache/incubator-superset/issues/2771

在障碍被克服后,我遇到了另一种类型的"UnicodeEncodeError:‘拉丁语-1’编解码器不能编码字符.序数不在范围(256)“。通过在postgres_writer.py目录中更改mysql2pgsql目录中的一部分来解决这个问题,如下所示。

代码语言:javascript
复制
comments.append('COMMENT ON TABLE %s is %s;' % (table.name, 
QuotedString(table.comment).getquoted()))

==>

comments.append('COMMENT ON TABLE %s is %s;' % (table.name, 
QuotedString(table.comment.encode('utf-8')).getquoted()))

当我这样做时,我参考了卢卡萨对这个问题的评论-

https://github.com/requests/requests/issues/1822

然后,我可以通过一个command(py-mysql2pgsql).将40多个MariaDB表迁移到PostgreSQL表。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48180705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档