日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Django更新models數(shù)據(jù)庫(kù)結(jié)構(gòu)步驟

瀏覽:184日期:2024-10-13 16:01:52

有時(shí)候在我們使用Django設(shè)計(jì)了models中的數(shù)據(jù)庫(kù)結(jié)構(gòu),并且已經(jīng)同步了數(shù)據(jù)庫(kù)之后,我們突然想在數(shù)據(jù)表中更新或者增加新的字段,也就是需要修改數(shù)據(jù)庫(kù)的結(jié)構(gòu),會(huì)出現(xiàn)以下的問(wèn)題:

C:UsersAdministratorDesktopWeb開(kāi)發(fā)Django_Demojkxy>python manage.py makemigrationsYou are trying to add a non-nullable field ’grade’ to student without a default; we can’t do that (the database needs something to populate existing rows).Please select a fix:1) Provide a one-off default now (will be set on all existing rows with a null value for this column)2) Quit, and let me add a default in models.pySelect an option:

就是在我們?cè)趍odels中修改了表的字段后,進(jìn)行python manage.py makemigrations同步數(shù)據(jù)庫(kù)時(shí)會(huì)出現(xiàn)上面報(bào)錯(cuò),會(huì)導(dǎo)致數(shù)據(jù)庫(kù)結(jié)構(gòu)更新失敗

解決方法如下:

第一種方式:先刪除再重構(gòu)

1、刪除數(shù)據(jù)庫(kù)對(duì)應(yīng)的數(shù)據(jù)表

注意:在這里可以不用暴力刪除數(shù)據(jù)表,可以利用django的migrations進(jìn)行,操作如下:

1.1、首先將自己需要重構(gòu)的數(shù)據(jù)表類的models注釋掉,然后輸入命令python manage.py makemigrations,這個(gè)時(shí)候migration會(huì)自動(dòng)記錄刪除數(shù)據(jù)表的操作

Django更新models數(shù)據(jù)庫(kù)結(jié)構(gòu)步驟

Django更新models數(shù)據(jù)庫(kù)結(jié)構(gòu)步驟

1.2、然后在輸入命令python manage.py migrate,Django會(huì)自動(dòng)將本地對(duì)應(yīng)的數(shù)據(jù)庫(kù)進(jìn)行刪除

Django更新models數(shù)據(jù)庫(kù)結(jié)構(gòu)步驟

2、刪除應(yīng)用當(dāng)中的migrations文件

3、刪除應(yīng)用當(dāng)中的pychace文件

4、刪除db_sqllite文件(若配置數(shù)據(jù)庫(kù)為mysql時(shí),可以刪除db_sqllite)

5、建立一個(gè)空數(shù)據(jù)庫(kù),命令為python manage.py makemigrations --empty 應(yīng)用名稱

C:UsersAdministratorDesktopWeb開(kāi)發(fā)Django_Demojkxy>python manage.py makemigrations --empty bbsMigrations for ’bbs’:bbsmigrations0001_initial.py

6、同步數(shù)據(jù)庫(kù):

python manage.py makemigrationspython manage.py migrate C:UsersAdministratorDesktopWeb開(kāi)發(fā)Django_Demojkxy>python manage.py makemigrations --empty bbsMigrations for ’bbs’: bbsmigrations0001_initial.py C:UsersAdministratorDesktopWeb開(kāi)發(fā)Django_Demojkxy>python manage.py makemigrationsMigrations for ’bbs’: bbsmigrations0002_student_testmyfield.py - Create model Student - Create model Testmyfield C:UsersAdministratorDesktopWeb開(kāi)發(fā)Django_Demojkxy>python manage.py migrateOperations to perform: Apply all migrations: admin, auth, bbs, contenttypes, sessionsRunning migrations: Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK Applying admin.0001_initial... OK Applying admin.0002_logentry_remove_auto_add... OK Applying contenttypes.0002_remove_content_type_name... OK Applying auth.0002_alter_permission_name_max_length... OK Applying auth.0003_alter_user_email_max_length... OK Applying auth.0004_alter_user_username_opts... OK Applying auth.0005_alter_user_last_login_null... OK Applying auth.0006_require_contenttypes_0002... OK Applying auth.0007_alter_validators_add_error_messages... OK Applying auth.0008_alter_user_username_max_length... OK Applying bbs.0001_initial... OK Applying bbs.0002_student_testmyfield... OK Applying sessions.0001_initial... OK

第二種方式:直接在原結(jié)構(gòu)上更新結(jié)構(gòu)

#出版社class Publisher(models.Model): ’’’出版社數(shù)據(jù)表’’’ id=models.AutoField(primary_key=True) #自增ID主鍵 name=models.CharField(max_length=50,verbose_name=’出版社名稱’,null=False,unique=True) def __str__(self): return ’{},{}’.format(self.id,self.name)

接下來(lái)我們需要新增一個(gè)字段addr地址

#出版社class Publisher(models.Model): ’’’出版社數(shù)據(jù)表’’’ id=models.AutoField(primary_key=True) #自增ID主鍵 name=models.CharField(max_length=50,verbose_name=’出版社名稱’,null=False,unique=True) addr=models.CharField(max_length=128,verbose_name=’出版社地址’) def __str__(self): return ’{},{}’.format(self.id,self.name,self.addr)

由于我們的數(shù)據(jù)庫(kù)的Publisher表本身已經(jīng)有數(shù)據(jù)了,所以我們?cè)谶M(jìn)行python manage.py makemigrations會(huì)出現(xiàn)以下錯(cuò)誤:

Django更新models數(shù)據(jù)庫(kù)結(jié)構(gòu)步驟

上圖的意思是說(shuō)addr沒(méi)有默認(rèn)值,無(wú)法更新到數(shù)據(jù)庫(kù)中,然后給出了兩個(gè)選項(xiàng):

第一是讓你馬上給定一個(gè)默認(rèn)值,然后一次性的把所有addr都寫(xiě)成這個(gè)值

第二是先退出,你自己在models里面去配置默認(rèn)值

我選擇先退出,在models中加上默認(rèn)值,在進(jìn)行makemigrations,這次就會(huì)更新成功了!

#出版社class Publisher(models.Model): ’’’出版社數(shù)據(jù)表’’’ id=models.AutoField(primary_key=True) #自增ID主鍵 name=models.CharField(max_length=50,verbose_name=’出版社名稱’,null=False,unique=True) addr=models.CharField(max_length=128,verbose_name=’出版社地址’,default=’成都市動(dòng)物園’) def __str__(self): return ’{},{}’.format(self.id,self.name,self.addr)

Django更新models數(shù)據(jù)庫(kù)結(jié)構(gòu)步驟

讓我們來(lái)檢查數(shù)據(jù)庫(kù)中的數(shù)據(jù)表:

Django更新models數(shù)據(jù)庫(kù)結(jié)構(gòu)步驟

可以看到數(shù)據(jù)結(jié)構(gòu)發(fā)生了變化!

以上這篇Django更新models數(shù)據(jù)庫(kù)結(jié)構(gòu)步驟就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Django
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲精品三级| 日本在线视频一区二区| 香蕉视频成人在线观看| 久草精品视频| 国产探花在线精品| 丝袜亚洲精品中文字幕一区| 日韩高清不卡| 国产成人免费精品| 国产精品毛片视频| 日韩高清电影免费| 视频一区中文字幕| 亚洲一级高清| 秋霞影视一区二区三区| 激情久久一区二区| 日韩高清电影一区| 免费在线观看日韩欧美| 国产一区二区三区自拍| 日韩免费在线| 欧美精品中文字幕亚洲专区| 免费的成人av| 亚洲天堂1区| 日韩超碰人人爽人人做人人添| 国产精品美女久久久| 99视频精品全国免费| 日韩三区在线| 韩日一区二区| 国产精品13p| 成人精品高清在线视频| 精品一区二区三区亚洲| 青青草国产精品亚洲专区无| 日本大胆欧美人术艺术动态| 天堂8中文在线最新版在线| 亚洲一区区二区| 亚洲欧美日韩专区| 午夜一级久久| 日韩专区在线视频| 中文字幕亚洲精品乱码| 午夜宅男久久久| 免费成人在线观看| 天堂av一区| 国产欧美日韩视频在线| 国产精品调教| 九九久久国产| 欧美男人天堂| 在线看片福利| 99精品一区| 狠狠久久婷婷| 美国三级日本三级久久99 | 99riav国产精品| 99精品99| 青草国产精品| 久久一区国产| 高清av不卡| 欧洲毛片在线视频免费观看| 国产美女一区| 青草av.久久免费一区| 日韩在线网址| 综合五月婷婷| 综合色就爱涩涩涩综合婷婷| 欧美另类中文字幕| 免费在线成人| 精品成人免费一区二区在线播放| 亚洲高清久久| 亚洲不卡视频| 麻豆精品少妇| 秋霞国产精品| 午夜宅男久久久| 国产精品视频3p| 久久三级福利| 日韩精品视频在线看| 国产精品99一区二区三区| 尤物在线精品| 欧美中文一区| 麻豆理论在线观看| 久久99伊人| 亚洲精品动态| 精品一区二区三区视频在线播放| 日韩av有码| 亚洲v在线看| 欧美特黄一区| 日本欧美一区| 日韩高清成人| 日韩精品久久久久久久软件91| 狂野欧美性猛交xxxx| 久久精品av| 日韩av网站免费在线| 91亚洲国产成人久久精品| 亚洲精品一区二区妖精| 国产毛片精品| 波多野结衣一区| 日本成人精品| 国产日韩欧美一区| 天堂网在线观看国产精品| 国产精品亚洲片在线播放| 欧美性感美女一区二区| 国产日产精品_国产精品毛片| a天堂资源在线| 丝袜美腿一区二区三区| 另类综合日韩欧美亚洲| 久久大逼视频| 波多野结衣久久精品| 日本欧美一区| 成人羞羞视频播放网站| 日韩精品视频中文字幕| 激情婷婷久久| 久久精品九色| 日韩精品一二三| 久久免费福利| 综合激情视频| 久久高清免费| 国产精品.xx视频.xxtv| 蜜臀精品一区二区三区在线观看 | 国产精品久久观看| 日韩在线观看中文字幕| 四虎4545www国产精品| 国产精品亲子伦av一区二区三区 | 亚洲特色特黄| 国产高清亚洲| 日日摸夜夜添夜夜添国产精品| 久久精品观看| 精品久久一区| 久久激情综合网| 欧美特黄一区| 久久三级视频| 福利一区视频| 欧美成人精品午夜一区二区| 日韩激情一二三区| 香蕉精品999视频一区二区| 欧美男人天堂| 成人日韩av| 久久影院一区二区三区| 日韩高清二区| 亚洲伊人精品酒店| 日韩视频一区| 国精品一区二区| 麻豆网站免费在线观看| 国产免费成人| 婷婷亚洲成人| 中文字幕一区二区av| 亚洲专区一区| 青青久久av| 国产亚洲一区二区手机在线观看 | 亚洲综合电影| 精品国产一区二| 免费在线日韩av| 国产精品xxx在线观看| 18国产精品| 日韩精品1区2区3区| 亚洲一二av| 亚洲一区国产| 国产手机视频一区二区| 91成人超碰| 婷婷亚洲综合| 香蕉久久精品| 在线日韩av| 亚洲激情另类| 蜜臀久久99精品久久久画质超高清| av成人国产| 巨乳诱惑日韩免费av| 久久香蕉精品| 综合欧美精品| 日韩国产一二三区| 国产精品一区二区99| 国产精品激情电影| 四虎精品一区二区免费| 久久国产亚洲| 欧美肉体xxxx裸体137大胆| 亚洲先锋成人| 亚洲欧美高清| 亚洲精品激情| 亚洲精品成人一区| 欧美一级一区| 国产精品日本一区二区三区在线| 欧美国产另类| 正在播放日韩精品| 亚洲综合电影| 日韩在线二区| 日韩在线精品| 精品一区三区| 亚洲欧美日韩高清在线| 免费观看在线色综合| 日韩动漫一区| 精品中文在线| 免费视频国产一区| 亚洲精品成人一区| 久久99精品久久久野外观看| 石原莉奈在线亚洲二区| 亚洲毛片一区| 日本不卡一区二区| 精品日韩在线| 伊人久久大香线蕉av不卡| 婷婷六月综合| 91精品在线免费视频| 久久精品国产免费| 成人羞羞视频播放网站| 久久午夜视频| 日韩高清一区二区| av最新在线| 免费精品视频| 国产精品sm|