【发布时间】:2015-08-18 11:54:39
【问题描述】:
Django dumpdata(没有指定应用程序)将所有已安装应用程序的所有表转储到输出文件。我刚刚意识到这不包括 django_migrations 表。我检查了其他 django 表,它们被包含在 INSTALLED_APPS 设置中,如下所示:
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
现在,我很好奇,为什么 django_migrations 表没有被转储。基本原理似乎是当您创建一个新数据库并进行迁移时,它将自动生成并填充数据。它是否正确?如果是这样,我的第二个问题是有没有办法把它转储(作为备份)?我是 django 的新手,尝试新事物可能会打破那张桌子。有备份会很方便。
【问题讨论】:
-
只有在您提供初始数据固定装置(1.8 之前)或数据迁移时才会自动填充表。有一个向 Django 添加
--dry-run选项的功能请求,类似于以前在 South 中在运行迁移之前检查迁移是否有错误,但看起来还没有完成:code.djangoproject.com/ticket/23347 -
如果您希望创建数据库的备份,有比
dumpdata更好的方法来做到这一点。确切的方法将取决于您的数据库。django_migrations表存在于传统的 Django 机器之外,这可能是它没有被包括在内的原因。 -
@knbk 你能告诉我备份数据库的更好方法吗?另外,如果你想把它变成一个答案,我想标记它。谢谢,
-
@MMatt 搜索“备份”。如果不知道您使用的是哪个数据库后端,我真的不能说更多。