包含 django_migrations table 的 Django 数据库在哪里?

Where is the Django database containing the django_migrations table?

This question询问Django安装在哪里

This question 是关于 table django_migrations.

我在交互式控制台中查看了命令 django 的路径,在那里我找到了一个子目录 db,以及 middleware,等等

但我不知道这个 table django_migrations(即其中的数据)实际上保存在哪里。

我首先想知道,因为我想知道如果这些数据丢失了会发生什么。我只是在学习 Django,我不太明白这会有多大的问题。

Django 位置的路径在我的主文件夹中的一个目录下,我在其中保存 Python 虚拟环境,其名称以“.”开头。我倾向于将此类目录从我的备份计划中排除...

刚刚在我的项目中删除了 db.sqlite3,我看到当您执行 migrate 时它会重新生成,同时还有一个列表(在我现在的例子中)大约 15 个迁移操作。我对其中的一些感到非常困惑:前 10 个左右似乎是在我开始对 models.py 文件进行任何操作之前发生的。是否在某处记录或解释了它们?

如果您将默认的 django 安装程序与 sqlite 一起使用,则会有一个文件 db.sqlite3 - 这是您的数据库。

当您说它是 "regenerated" - 它是由迁移构建的。当您 运行 python manage.py migrate 时,您可以看到从已安装的 django 应用程序进行的一系列迁移,包括一些默认的,例如 django.contrib.auth 包含 User 模型。

迁移存储在 <app_name>/migrations 目录中。您可以查看一些默认迁移 here,这是默认的身份验证迁移,但还有更多。

您在settings.py中配置的数据库中存在所有表;默认情况下,这是项目目录中的 SQLite 数据库。

当 运行 migrate 命令时,Django 会从您安装的所有 应用程序 中收集所有迁移(INSTALLED_APPS in settings.py).默认情况下,它包括 django.contrib.auth 之类的内容,它定义了与用户帐户相关的 a bunch of migrations。它为您提供了 Django 开箱即用的用户管理功能。