數(shù)據(jù)庫遷移相關(guān)錯誤

Django數(shù)據(jù)庫遷移的錯誤

當(dāng)我們在使用Django的ORM時,一般分為三步

  • 在models.py中設(shè)置模型
  • 執(zhí)行makemigrations
  • 執(zhí)行migrate

在這三步總會多多少少的遇到一些錯誤,編者以比較常見的錯誤為例,提出了一些解決方法。

一、錯誤描述

1、創(chuàng)建了新的字段,數(shù)據(jù)庫中無

2、執(zhí)行了makemigrations后手動在數(shù)據(jù)庫中刪除了表

  • 再次執(zhí)行時沒有報錯卻也沒在數(shù)據(jù)庫中生成表
  • 再次執(zhí)行時報錯說并不存在那樣一個文件或者目錄

二、解決方法

1.添加字段后數(shù)據(jù)庫中無

這種情況一般是沒有執(zhí)行遷移映射操作,只需要

  1. 在虛擬機中,進(jìn)入到相應(yīng)的項目地址,然后
python manage.py makemigrations app_name
python manage.py migrate app_name

==app_name==為創(chuàng)建的app名

  1. 或者在pycharm 中,點擊tools->start ssh session

再進(jìn)入相應(yīng)的項目地址輸入上述命令

  1. 或者在pycharm中,點擊tools->Run manage.py Task

    直接輸入makemigrations app_name執(zhí)行不出錯后,再輸入migrate app_name

2.數(shù)據(jù)庫中刪表引起的錯

解決方法是,

1.將app文件包中的

pycharm中名為news的app下面的文件

這類文件刪除,即前帶有序號的文件刪除

  1. 打開數(shù)據(jù)庫,將數(shù)據(jù)庫中表django_migrations與相應(yīng)app模型表的數(shù)據(jù)刪除,這里以app為doc為例

    數(shù)據(jù)庫中表django_migrations里app字段值為doc的信息

    使用代碼,將相應(yīng)信息刪除【其中的app為字段,app_name為創(chuàng)建的app名】

    delete from django_migrations where app = 'app_name'
    
  2. 重新同步文件后,再次執(zhí)行makemigrations 和 migrate操作?!疽娊鉀Q方法1】

三、聯(lián)系方式

如果您有什么意見或者建議,歡迎與我聯(lián)系!

郵箱:psywency@foxmail.com

備用:[wency03lk@outlook.com]

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容