【发布时间】: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