django重置某个app的数据表

django部分数据表重置


django的数据表类很方便,但是修改起来可能会有问题, 比如我在models 类中间插入一个列字段, migrate后发现mysql中加到最后一列了.

如果我直接把数据库中的表删掉, 重新makemigrations和migrate是不会重新生成的. 清理migrations目录下的非__init__.py文件也是不行的


重置一个app的表

1、删除该app下相关数据表;

2、删除“django_migrations”表中字段“app”为目标app名称的所有行;

3、删除“auth_permission”表中目标app中所有model的权限(通常为“Can add XXX”、“Can change XXX”、“Can delete XXX”、“Can view XXX”);

4、删除“django_content_type”表中字段“app_label”为目标app名称的所有行;

5、删除该app目录下migrations文件夹中除“__init__.py”外所有py文件。




另外一种方法也是可以的,步骤少一点.

比如app是 checkmysql

1. 把django用的数据库中checkmysql*开头的表都删除掉.

2. 删除该checkmysql目录下migrations文件夹中除“__init__.py”外所有py文件。

3. 删除“django_migrations”表中字段“checkmysql”开头的所有行;

4. 重新makemigrations和migrate

你可能感兴趣的:(django重置某个app的数据表)