您好,登錄后才能下訂單哦!
起因
修改了表結構以后執行python3 manage.py migrate 報錯:
django.db.utils.OperationalError: (1091, "Can't DROP 'email'; check that column/key exists")
所以進數據庫把對應的表刪除了,想著重新生成這張表.
刪除表以后執行:
python3 manage.py makemigrations python3 manage.py migrate
還是不能生成表,提示:No changes detected
處理過程
首先刪除了app對應目錄下的數據庫對應的文件和緩存文件:
$ rm -rf migrations/ __pycache__/
重新執行:
$ python3 manage.py makemigrations No changes detected $~/code/django/blogproject$ python3 manage.py makemigrations comments Migrations for 'comments': comments/migrations/0001_initial.py - Create model Comment $~/code/django/blogproject$ python3 manage.py migrate Operations to perform: Apply all migrations: admin, auth, blog, comments, contenttypes, sessions, users Running migrations: No migrations to apply.
進入數據庫發現仍然沒有生成表.
然后發現有一張django_migrations表,里面記錄這有關創建表的記錄,刪除對應的數據表:
delete from django_migrations where app='yourappname';
重新執行生成數據庫命令:
$ python3 manage.py makemigrations comments No changes detected in app 'comments' $~/code/django/blogproject$ python3 manage.py migrate comments Operations to perform: Apply all migrations: comments Running migrations: Applying comments.0001_initial... OK
數據表順利生成.
結論
在執行
python3 manage.py makemigrations python3 manage.py migrate
操作的時候,不僅會創建0001_initial.py對應的模型腳本,還會創建一個數據庫記錄創建的模型.如果想重新生成數據庫,需要兩個地方都做刪除.
以上這篇解決Django migrate No changes detected 不能創建表的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。