Python Django根据迁移修复现有数据库

Python Django根据迁移修复现有数据库,python,django,django-migrations,django-database,Python,Django,Django Migrations,Django Database,我继承了一个django(1.11.6,数据库PostgreSQL)项目,我对它是新手。最近我注意到一些表与由manage.py sqlmigrate生成的表不同,例如,manage.py inspectdb返回 class TheClass(models.Model): id = models.IntegerField(primary_key=True) ... 而迁移有: migrations.CreateModel( name='TheClass'

我继承了一个django(1.11.6,数据库PostgreSQL)项目,我对它是新手。最近我注意到一些表与由
manage.py sqlmigrate
生成的表不同,例如,
manage.py inspectdb
返回

class TheClass(models.Model):
    id = models.IntegerField(primary_key=True)
    ...
而迁移有:

migrations.CreateModel(
            name='TheClass',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ...

此外,它们有不同的约束名称,等等,列名是正确的。我认为这是不正确的转移的结果。我想根据迁移来修复表,保持数据不变。我尝试使用
sqldiff
,但它没有返回任何差异,我也没有找到答案。

你有很多不连贯的地方吗?如果没有,只需稍微更改要更正的字段,运行
makemigrations
,然后运行
migrate
,这样Django就可以检测到差异,然后再次使用
makemigrations
migrate
返回原始所需的值。希望这能纠正一些不连贯的地方@KrazyMax,谢谢你!嗯,我真正关心的变化是,
id
不是串行的,所以我必须将AutoField添加到模型中。其他问题是错误的约束名称等。了解解决此问题的可靠方法将非常有用。但现在,我想我可以试试你建议的方式。