如何从SQLite3迁移到PostgreSQL

4

我有一个Rails应用程序,最初是使用SQLite3创建的。现在我需要将它移植到PostgreSQL并保留所有数据。

我尝试按照 "如何从SQLite迁移到PostgreSQL(Rails)" 的建议进行迁移:

sqlite3 development.db .dump | psql dbname username

在我的情况下,这意味着:
sqlite3 development.sqlite3 .dump | psql dev_db deployer

我得到了这个:
ERROR:  syntax error at or near "PRAGMA"
LINE 1: PRAGMA foreign_keys=OFF;
    ^
BEGIN
ERROR:  syntax error at or near "AUTOINCREMENT"
LINE 1: CREATE TABLE "people" ("id" INTEGER PRIMARY KEY AUTOINCREMEN...

这只是SQL实现上的差异吗?我该如何解决这个问题?


2
这将为您提供帮助。 - BookOfGreg
2
我建议看一下Sequel。它的命令行可执行文件有一个很好的特性,就是可以将数据库从一个DBM复制到另一个DBM。此外,它也是一个很棒的ORM,使得在不改变代码的情况下轻松地从一个数据库转移到另一个数据库。DBM特定的SQL可能会导致问题,但Sequel有助于消除这些差异。我还建议不要编写DBM特定的SQL,而是尽可能依赖你的ORM来管理数据库。 - the Tin Man
@theTinMan,谢谢你,我已经发布答案了。 - Mikhail Chuprynski
1个回答

6
感谢 @theTinMan。
gem install sequel

sequel -C sqlite://db/development.sqlite3 postgres://user:password@localhost/dbname

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接