【问题标题】:How to migrate from SQLite3 to PostgreSQL如何从 SQLite3 迁移到 PostgreSQL
【发布时间】:2016-04-13 08:35:49
【问题描述】:

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

我尝试按照“How to migrate from SQLite to 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 实现的差异吗?我该如何解决这个问题?

【问题讨论】:

  • stackoverflow.com/questions/6204142/… 这会对你有所帮助。
  • 我建议您查看Sequel。其命令行可执行文件的一个很好的特性是it can copy databases from one DBM to another。此外,它还是一个很棒的 ORM,它可以很容易地从一个数据库迁移到另一个数据库,而无需更改代码。 DBM 特定的 SQL 可能会导致问题,但 Sequel 有助于消除差异。我还建议不编写特定于 DBM 的 SQL,而是尽可能依靠您的 ORM 来管理 DB。
  • @theTinMan 谢谢你,发布了答案

标签: ruby-on-rails ruby postgresql sqlite


【解决方案1】:

感谢@theTinMan

gem install sequel

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

【讨论】:

    猜你喜欢
    • 2017-02-14
    • 1970-01-01
    • 1970-01-01
    • 2012-07-02
    • 2022-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多