转储,然后为 WagTail 加载一个 sqlite3 数据库
Dumping, then loading a sqlite3 DB for WagTail
我正在尝试复制生产数据库的内容,然后用于本地开发。我尝试使用 sqlite 的转储然后执行 cat dump.sql | sqlite3 db.sqlite3
,但这只会打印出大量错误,例如:
Error: near line 3: table "django_migrations" already exists
Error: near line 4: UNIQUE constraint failed: django_migrations.id
Error: near line 5: UNIQUE constraint failed: django_migrations.id
Error: near line 6: UNIQUE constraint failed: django_migrations.id
Error: near line 7: UNIQUE constraint failed: django_migrations.id
Error: near line 8: UNIQUE constraint failed: django_migrations.id
Error: near line 9: UNIQUE constraint failed: django_migrations.id
我也尝试过使用 Django 自己的 dump/load 命令,但是当我这样做时./manage.py loaddata db.json
我遇到了很多错误:
Traceback (most recent call last):
File "/Users/jack/dev/web_design/kaoru_wada/venv/lib/python3.5/site-packages/django/db/backends/utils.py", line 64, in execute
return self.cursor.execute(sql, params)
File "/Users/jack/dev/web_design/kaoru_wada/venv/lib/python3.5/site-packages/django/db/backends/sqlite3/base.py", line 337, in execute
return Database.Cursor.execute(self, query, params)
sqlite3.IntegrityError: UNIQUE constraint failed: django_content_type.app_label, django_content_type.model
即使我删除现有的本地数据库,运行 迁移,然后尝试将 dbdumps 导入新的本地数据库,我也会遇到这些错误。
关于如何复制数据库内容并成功导入它有什么想法吗?
您的 .sql 转储文件包含构建数据库表的信息以及填充它们的数据,因此不需要 运行 迁移作为一个单独的步骤 - 这只会重复过程的一部分(并在尝试创建已经存在的表时抛出错误)。
只需 运行 执行 cat dump.sql | sqlite3 db.sqlite3
步骤而不事先创建 db.sqlite3
文件,将为您提供一个完全填充的数据库,其状态与 运行 相同迁移。
我正在尝试复制生产数据库的内容,然后用于本地开发。我尝试使用 sqlite 的转储然后执行 cat dump.sql | sqlite3 db.sqlite3
,但这只会打印出大量错误,例如:
Error: near line 3: table "django_migrations" already exists
Error: near line 4: UNIQUE constraint failed: django_migrations.id
Error: near line 5: UNIQUE constraint failed: django_migrations.id
Error: near line 6: UNIQUE constraint failed: django_migrations.id
Error: near line 7: UNIQUE constraint failed: django_migrations.id
Error: near line 8: UNIQUE constraint failed: django_migrations.id
Error: near line 9: UNIQUE constraint failed: django_migrations.id
我也尝试过使用 Django 自己的 dump/load 命令,但是当我这样做时./manage.py loaddata db.json
我遇到了很多错误:
Traceback (most recent call last):
File "/Users/jack/dev/web_design/kaoru_wada/venv/lib/python3.5/site-packages/django/db/backends/utils.py", line 64, in execute
return self.cursor.execute(sql, params)
File "/Users/jack/dev/web_design/kaoru_wada/venv/lib/python3.5/site-packages/django/db/backends/sqlite3/base.py", line 337, in execute
return Database.Cursor.execute(self, query, params)
sqlite3.IntegrityError: UNIQUE constraint failed: django_content_type.app_label, django_content_type.model
即使我删除现有的本地数据库,运行 迁移,然后尝试将 dbdumps 导入新的本地数据库,我也会遇到这些错误。
关于如何复制数据库内容并成功导入它有什么想法吗?
您的 .sql 转储文件包含构建数据库表的信息以及填充它们的数据,因此不需要 运行 迁移作为一个单独的步骤 - 这只会重复过程的一部分(并在尝试创建已经存在的表时抛出错误)。
只需 运行 执行 cat dump.sql | sqlite3 db.sqlite3
步骤而不事先创建 db.sqlite3
文件,将为您提供一个完全填充的数据库,其状态与 运行 相同迁移。