[小经验]在SQLite和PostgreSQL之间导数据

要从SQLite里导30万笔数据到PostgreSQL里。

按照以前的经验,那肯定是找个DUMP工具,比如Borland的 Data Pump或是MSSQL的DTS。但是说实话,这些东西用在非ODBC或ADO的数据上实在不方便。而且因为我的电脑换了块主板,狗日的MSSQL就不能 用了,删除重装也不行,总不能让我重装系统吧,还TMD是正版。

还是老老实实用标准SQL来做吧,又通用又快速,只是查找使用方法花了点时间,这里记录一下吧。

从SQLite中导出:

sqlite3 database.name .dump .quit > database.export

导入到PostgreSQL中:

psql -d database -a -f database.export

搞定。

顺大便记录一下反过来的操作。

从PostgreSQL中导出:

pg_dump database -d -f database.export

更新:由于目前版本(pg9)的pg_dump默认是用COPY语句导数据的,为了兼容,还是用INSERT语句为好:

pg_dump database --inserts -f database.export

其它可用参数还有如: -a(只导数据) --column-inserts(在INSERT语句里包含字段名,适用于字段顺序不同的情况)等

导入SQLite:

sqlite3 database.name < database.export

注意,可能需要修改掉一些SQLite不支持的语句。