執(zhí)行Django數(shù)據(jù)遷移時報 1091錯誤及解決方法
問題描述
今天在Pycharm 中的Terminal下,執(zhí)行數(shù)據(jù)遷移操作時,第一步: Python manage.py makemigrations ,是沒有任何問題,但就是在執(zhí)行真正的數(shù)據(jù)遷移時,也就是第二步:Python manage.py migrate 時,報錯,錯誤截圖如下
大概的意思就是 錯誤代碼1091,原因是 “無法刪除'dt_id';請檢查列/鍵是否存在”。
問題的解決
分析:
可能是數(shù)據(jù)庫中的字段結構,已經完成了對此字段的修改,但是在執(zhí)行數(shù)據(jù)遷移的時候,生成的某個日志文件(一般形如:0003_auto_20191011_2032.py),可能還有一些刪除的字段
# Generated by Django 2.0.6 on 2019-10-11 12:32 from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ ('modelapp', '0002_student'), ] operations = [ migrations.RemoveField( model_name='student', name='age', ), migrations.RemoveField( model_name='student', name='birthday', ), migrations.RemoveField( model_name='student', name='salary', ), migrations.AlterField( model_name='student', name='tel', field=models.CharField(max_length=20), ), ]
如上圖的紅色字體問題部分,就是我們這個數(shù)據(jù)遷移時報錯的原因,只要將紅色字體部分注釋掉即可
# Generated by Django 2.0.6 on 2019-10-11 12:32 from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ ('modelapp', '0002_student'), ] operations = [ # migrations.RemoveField( # model_name='student', # name='age', # ), # migrations.RemoveField( # model_name='student', # name='birthday', # ), # migrations.RemoveField( # model_name='student', # name='salary', # ), migrations.AlterField( model_name='student', name='tel', field=models.CharField(max_length=20), ), ]
然后我們再次執(zhí)行 Python manage.py migrate 的時候就能成功遷移數(shù)據(jù)了。
總結
以上所述是小編給大家介紹的執(zhí)行Django數(shù)據(jù)遷移時報 1091錯誤及解決方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!
相關文章
使用Python讀取Excel數(shù)據(jù)在PPT中創(chuàng)建圖表
使用Python從Excel讀取數(shù)據(jù)并在PowerPoint幻燈片中創(chuàng)建圖表不僅能夠極大地簡化圖表創(chuàng)建過程,通過Python這一橋梁,我們可以輕松實現(xiàn)數(shù)據(jù)自動化處理和圖表生成,本文將演示如何使用Python讀取Excel數(shù)據(jù)在PPT中創(chuàng)建圖表,需要的朋友可以參考下2024-08-08python實現(xiàn)不同文件夾下的函數(shù)相互調用
這篇文章主要介紹了python實現(xiàn)不同文件夾下的函數(shù)相互調用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08python中pandas nlargest()的詳細用法小結
df.nlargest()是一個DataFrame的方法,用于返回DataFrame中最大的n個值所在的行,通過調用nlargest()方法,我們返回了分數(shù)最高的三個行,并按照降序排列,本文結合實例代碼給大家介紹的非常詳細,需要的朋友參考下吧2023-10-10