国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

djang data migration

quietin / 988人閱讀

摘要:當(dāng)你第一次用的數(shù)據(jù)庫請求表中不存在的字段時會導(dǎo)致錯誤。不關(guān)心數(shù)據(jù)庫中是否存在未被模型表示的。缺點數(shù)據(jù)量大的時候,速度相對較慢,表的關(guān)系比較復(fù)雜的時候可以導(dǎo)入不成功。

djang data migration

在使用django框架開發(fā)的過程中,我們不可避免的遇到models層的變更,就涉及到數(shù)據(jù)庫表的變動,django給我提供了一個migration的工具來做這些數(shù)據(jù)庫表的變更。

djang migration

如果不加appname,那么就是指所有包含migrations 目錄的app

# 基于當(dāng)前的model 檢測修改,創(chuàng)建遷移策略文件
python manage.py makemigrations 
# 執(zhí)行遷移動作
python manage.py migrate
migrations失敗

有時候如果models改動比較大,migrations會失敗,這個時候有兩種選擇,手工去修改migrations文件,第二種是清除所有migrations,重新migrate

手工修改migrations文件

通過報錯信息加上SQL語句找到找到問題,然后具體問題具體分析,是修改數(shù)據(jù)庫里面的數(shù)據(jù),還是修改migrations生成的腳本。

python manage.py migrate

python manage.py sqlmigrate  0001

當(dāng)處理模型修改的時候:

如果模型包含一個未曾在數(shù)據(jù)庫里建立的字段,Django會報出錯信息。 當(dāng)你第一次用Django的數(shù)據(jù)庫API請求表中不存在的字段時會導(dǎo)致錯誤。

Django不關(guān)心數(shù)據(jù)庫表中是否存在未在模型中定義的列。

Django不關(guān)心數(shù)據(jù)庫中是否存在未被模型表示的table。

在使用SQLite3數(shù)據(jù)庫時, 因為SQLite3 不支持刪除列操作,只有有限地 ALTER TABLE 支持,
所以修改數(shù)據(jù)庫列的操作被新建表然后select into newtable 代替,所以會存在更多問題

參考

http://www.tuicool.com/articles/yM3IVr

NULL to NOT NULL
python manage.py makemigrations
You are trying to add a non-nullable field "college" to majorproperty 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)
 2) Quit, and let me add a default in models.py
Select an option: 1
Please enter the default value now, as valid Python
The datetime and django.utils.timezone modules are available, so you can do e.g. timezone.now()
>>> 1

在migrate的時候提示你需要指定一個默認(rèn)值,用以處理NULL的情況

清除migrations

清除所有app目錄/migrations/下除__init__.py 文件之外的py文件

find . -path "*migrations*" -name "*.py" -not -path "*__init__*" -exec rm {} ;
squashmigrations

當(dāng)migrations越來越多的時候執(zhí)行 makemigrations 和 migrate 就會越來越慢,可以考慮對其瘦身(減少migrations文件的數(shù)量)

python manage.py squashmigrations schools 0002
數(shù)據(jù)導(dǎo)入導(dǎo)出 數(shù)據(jù)導(dǎo)出

django 項目提供了一個導(dǎo)出的方法 python manage.py dumpdata, 不指定 appname 時默認(rèn)為導(dǎo)出所有的app

python manage.py dumpdata [appname] > appname_data.json
數(shù)據(jù)導(dǎo)入

數(shù)據(jù)導(dǎo)入,不需要指定 appname

python manage.py loaddata appname_data.json

優(yōu)點:可以兼容各種支持的數(shù)據(jù)庫,也就是說,以前用的是 SQLite3,可以導(dǎo)出后,用這種方法導(dǎo)入到 MySQL, PostgreSQL等數(shù)據(jù)庫,反過來也可以。

缺點:數(shù)據(jù)量大的時候,速度相對較慢,表的關(guān)系比較復(fù)雜的時候可以導(dǎo)入不成功。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/37920.html

相關(guān)文章

  • sqlalchemy使用上的小tip

    摘要:地址序列化為靈感來源于多個實例單個實例排除字段僅包括字段關(guān)系查詢深度默認(rèn)為增加一些自定義的函數(shù)可傳遞參數(shù)的函數(shù)像一樣使用與相比為什么很多人都認(rèn)為更好用大概就是因為更方便基本查詢已實現(xiàn)示例關(guān)系查詢其它去掉一些的重復(fù)工作以為例通過繼承中的就 GitHub地址: https://github.com/honmaple/maple-json sqlalchemy object序列化為json...

    tyheist 評論0 收藏0
  • Flask之?dāng)U展flask-migrate

    摘要:一個用來做數(shù)據(jù)遷移的擴(kuò)展,一般都是結(jié)合使用,在上一篇文章中我也介紹了這個擴(kuò)展,需要的小伙伴可以看一下,后續(xù)我會將更深層的寫出來。 flask-migrate一個用來做數(shù)據(jù)遷移的falsk擴(kuò)展,一般都是結(jié)合flask-sqlalchemy使用,在上一篇文章中我也介紹了這個擴(kuò)展,需要的小伙伴可以看一下,后續(xù)我會將flask-sqlalchemy更深層的寫出來。【config.py】 SQL...

    Snailclimb 評論0 收藏0
  • 何成為 QueryPHP 開發(fā)者

    摘要:文檔開發(fā)基于單元測試實現(xiàn)的自動化文檔當(dāng)前文檔開發(fā)計劃功能開發(fā)當(dāng)前計劃功能技術(shù)債務(wù)清償當(dāng)前技術(shù)債務(wù)單元測試盡可能減少當(dāng)前單元測試成為開發(fā)者需要加入我們的組織,如有相關(guān)意愿請發(fā)送郵件至小牛哥,我們會聯(lián)系你的。 QueryPHP 非常歡迎各位給我們共同的偉大的作品添磚加瓦,實現(xiàn)為 PHP 社區(qū)提供一個好框架的美好愿景。 文檔開發(fā).基于單元測試實現(xiàn)的自動化文檔 當(dāng)前文檔開發(fā) 計劃功能.開發(fā)...

    bigdevil_s 評論0 收藏0
  • Flask Web Development —— 數(shù)據(jù)庫(下)

    摘要:命令需要注冊回調(diào)函數(shù)來將對象添加到導(dǎo)入列表。創(chuàng)建遷移腳本在,數(shù)據(jù)庫遷移工作由遷移腳本完成。函數(shù)實施數(shù)據(jù)庫更改,是遷移的一部分,函數(shù)則刪除它們。另一方面,自動遷移通過尋找模型定義和數(shù)據(jù)庫當(dāng)前狀態(tài)間的不同為和生成代碼。 9、數(shù)據(jù)庫在視圖函數(shù)中的使用 在前面章節(jié)描述的數(shù)據(jù)庫操作是可以在視圖函數(shù)中直接使用的。示例5-5展示的新版本主頁實現(xiàn)了用戶輸入名字并保存到數(shù)據(jù)庫中。 示例5-5. he...

    jone5679 評論0 收藏0

發(fā)表評論

0條評論

quietin

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<