半年前开始使用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的:Adminer和phpPgAdmin,各有特色吧,我一直在用phpPgAdmin。
其中phpPgAdmin的中文化文件有问题,可以看我的一个request,或者拉取我的fork版本。
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