pgsqlite 是一个纯 python 模块和命令行工具,它使得将 SQLite 数据库导入 Postgres 变得简单,在这个过程中节省了大量的时间和麻烦。

SQLite 很棒。在“ In Praise Of SQLite ”中,我描述了为什么会这样。其中一个原因是可扩展性:
从某种意义上说,可扩展性是 SQLite 最大的力量;它为其用户增加了意想不到的实用性和价值,我们可以看到社区提供的许多富有想象力的用途。
然后,我列出了此类扩展名。
但也有另一种方式;不是扩展 SQLite 本身,而是通过 SQLite 扩展第三方产品。一个这样的插件是 bit.io 的 Adam Fletcher 的 pgsqlite,它允许将 SQLite 数据库无缝导入 Postgres。
在纸面上,这样的迁移似乎是一项简单的任务,毕竟它只是结构化数据的输出和结构化数据。实际上并非如此。亚当弗莱彻在途中发现了许多障碍:
- 类型差异
首先,SQLite 和 Postgres 使用不同的类型。
在某些情况下,PostgresSQL 和 Sqlite 如何引用它们的对象之间的标识符引用不匹配。- 原谅 SQL 解析
SQLite 在某些 SQL 语句中的语法错误更加宽松,而 Postgres 则不然。
因此,他必须做出一些权衡,比如根据每种类型决定如何处理 NULL,认识到当您将数据库中的实际数据从 SQLite 移动到 Postgres 时,您可能需要修改数据库中的实际数据。
最后,该工具已准备就绪,可以简单地调用为:
pgsqlite. py [-h] -f SQLITE_FILENAME -p POSTGRES_CONNECT_URL [-d DEBUG] [--drop_tables DROP_TABLES] [--drop_everything DROP_EVERYTHING] [--drop_tables_after_import DROP_TABLES_AFTER_IMPORT]
示例:导入到 bit.io 数据库 adam/AMEND,带有 DEBUG 级别的日志记录。
python pgsqlite. py -f . . /example_dbs/Chinook_Sqlite.sqlite -p postgresql://adam:<password>@db.bit.io/adam/AMEND --debug true
而已!您的数据现在归 PostgresSQL 所有。

原文标题:pgsqlite - Load SQLite databases into PostgresSQL
原文作者:Nikos Vaggalis
原文链接:https://www.i-programmer.info/news/84-database/15799-pgsqlite-load-sqlite-databases-into-postgressql.html




