Django 解決新建表刪除后無法重新創建等問題
起因
同步表的過程中,我手動將數據庫中的一個表刪除了,此時再去執行命令,發現不能再數據庫中新建表了
修改了表結構以后執行python3 manage.py migrate 報錯:
No changes detected
所以進數據庫把對應的表刪除了,想著重新生成這張表.
刪除表以后執行:
python3 manage.py makemigrationspython3 manage.py migrate
還是不能生成表,提示:No changes detected
處理過程
一、首先刪除了app對應目錄下的數據庫對應的文件和緩存文件:
$ rm -rf migrations/ __pycache__/
一般可以從本地刪除
重新執行:
···$ python3 manage.py makemigrationsNo changes detected /code/django/blogproject~/code/django/blogproject /code/django/blogproject python3 manage.py makemigrations commentsMigrations for ‘comments’:comments/migrations/0001_initial.py- Create model Comment /code/django/blogproject~/code/django/blogproject /code/django/blogproject python3 manage.py migrateOperations to perform:Apply all migrations: admin, auth, blog, comments, contenttypes, sessions, usersRunning migrations:No migrations to apply.···
二、刪除app下面目錄migrations下面除了init.py其他的所有文件
三、最后,刪除migrations中關于你的app的同步數據數據庫記錄
delete from django_migrations where app=‘yourappname’;
重新執行生成數據庫命令:
$ python3 manage.py makemigrations commentsNo changes detected in app ’comments’$~/code/django/blogproject$ python3 manage.py migrate commentsOperations to perform: Apply all migrations: commentsRunning migrations: Applying comments.0001_initial... OK
數據表順利生成.
結論
在執行
python3 manage.py makemigrationspython3 manage.py migrate
操作的時候,不僅會創建0001_initial.py對應的模型腳本,還會創建一個數據庫記錄創建的模型.如果想重新生成數據庫,需要三個地方都做刪除.
以上這篇Django 解決新建表刪除后無法重新創建等問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。
相關文章:
