我一直在使用SQLITE数据库进行开发,并在POSTGRESQL中生成.我刚用大量数据更新了我的本地数据库,需要将特定的表传输到生产数据库.
基于运行sqlite database .dump > /the/path/to/sqlite-dumpfile.sql,SQLITE以下列格式输出表转储:
BEGIN TRANSACTION;
CREATE TABLE "courses_school" ("id" integer PRIMARY KEY, "department_count" integer NOT NULL DEFAULT 0, "the_id" integer UNIQUE, "school_name" varchar(150), "slug" varchar(50));
INSERT INTO "courses_school" VALUES(1,168,213,'TEST Name A',NULL);
INSERT INTO "courses_school" VALUES(2,0,656,'TEST Name B',NULL);
....
COMMIT;
Run Code Online (Sandbox Code Playgroud)
如何将上述内容转换为可以导入生产服务器的POSTGRESQL兼容转储文件?
我有一个 Rails 应用程序,最初使用 SQLite3 创建。现在我需要将它与所有数据一起移动到 PostgreSQL。
我尝试按照“如何从 SQLite 迁移到 PostgreSQL (Rails) ”中的建议使用:
sqlite3 development.db .dump | psql dbname username
Run Code Online (Sandbox Code Playgroud)
就我而言,它是:
sqlite3 development.sqlite3 .dump | psql dev_db deployer
Run Code Online (Sandbox Code Playgroud)
我得到了这个:
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...
Run Code Online (Sandbox Code Playgroud)
那些只是 SQL 实现的差异吗?我该如何解决这个问题?