1. 程式人生 > 程式設計 >Django 解決新建表刪除後無法重新建立等問題

Django 解決新建表刪除後無法重新建立等問題

起因

同步表的過程中,我手動將資料庫中的一個表刪除了,此時再去執行命令,發現不能再資料庫中新建表了

修改了表結構以後執行python3 manage.py migrate 報錯:

No changes detected

所以進資料庫把對應的表刪除了,想著重新生成這張表.

刪除表以後執行:

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~/code/django/blogproject /code/django/blogproject python3 manage.py makemigrations comments
Migrations for ‘comments':
comments/migrations/0001_initial.py
- Create model Comment
 /code/django/blogproject~/code/django/blogproject /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.
···

二、刪除app下面目錄migrations下面除了init.py其他的所有檔案

三、最後,刪除migrations中關於你的app的同步資料資料庫記錄

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 解決新建表刪除後無法重新建立等問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。