django数据库迁移migrate

254 阅读1分钟
# 全局迁移数据文件
python manage.py makemigrations
python manage.py migrate

# 迁移某个app_name的数据文件
python manage.py makemigrations  app_name
python manage.py migrate app_name

# 合并冲突
python  manage.py makemigrations --merge

# 将目标的迁移操作标记为已应用,不实际运行SQL来更改数据库结构
python manage.py  migrate --fake

# 数据库表存在,则跳过初始迁移
python manage.py  migrate --fake-initial 


is applied before its dependency users.0001_initial on database 'default'. 

解决方案

python manage.py dbshell 

找到和用户关联的迁移记录,并删除掉 

select * from django_migrations where app='admin'; 

然后找到0001迁移的id,这样删除

delete from django_migrations where app='admin'; 

最后执行 python manage.py migrate --fake-initial users # 忽略users这个app下其他已经创建过的表,仅创建当前新的表 

其他情况:删除0001_initial.py等里面的其他CreateModel语句