数据库从MariaDB迁移到PostgreSQL

半年前开始使用PostgreSQL数据库(PostgreSQL安装详见网站LNPP环境安装配置笔记),经过这段时间,把我写的一些PHP程序全部从MariaDB切换到了PostgreSQL,另外,数据库连接模式也全部换成了PDO模式。说说遇到过的一些坑:

1、MariaDB数据库转换到PostgreSQL数据库

一开始网上没找到合适的工具,找了几个脚本,都不尽如人意。后来偶然看到Navicat有Linux版本,虽然是wine的,装了一下,发现非常不错。它就自带数据库迁移功能,“工具”->“数据传输”,直接就把数据转换过去了。但需要注意的是:自增字段需要处理一下。

2、SQL语句中的limit,原来一直用:limit i,n(i为起始索引值,n为返回数据条数),用PDO模式后,需要换成:limit n offset i。

3、MariaDB/Mysql的字段类型和PostgreSQL不完全一样,根据自己需要酌情处理就行。

4、除了Navicat,PostgreSQL数据库管理工具可以用官方自带的pgAdmin,还有两个PHP的:AdminerphpPgAdmin,各有特色吧,我一直在用phpPgAdmin。

其中phpPgAdmin的中文化文件有问题,可以看我的一个request,或者拉取我的fork版本(20190929注:已合并。)

5、几个我常用的PostgreSQL命令(创建用户、创建数据库、导入sql、导出sql、删除数据库)

createuser -U postgres -P newuser

createdb -U postgres -O newuser newdb

psql -U newuser -f /path/import.sql -d newdb

pg_dump -U newuser -f /path/dump.sql -d newdb

dropdb -U postgres newdb

发表评论

电子邮件地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据