您好,登錄后才能下訂單哦!
本文主要研究的是Django中migrate和makemigrations的差別,具體如下。
在你改動了 model.py的內容之后執行下面的命令:
Python manger.py makemigrations
相當于 在該app下建立 migrations目錄,并記錄下你所有的關于modes.py的改動,比如0001_initial.py, 但是這個改動還沒有作用到數據庫文件
你可以手動打開這個文件,看看里面是什么
在此之后執行命令
python manager.py migrate
將該改動作用到數據庫文件,比如產生table之類
當makemigrations之后產生了0001_initial.py 文件,你可以查看下該migrations會對應于什么樣子的SQL命令
python manger.py sqlmigrate theapp 0001
大概是這個樣子的:
BEGIN; CREATE TABLE "polls_choice" ( "id" serial NOT NULL PRIMARY KEY, "choice_text" varchar(200) NOT NULL, "votes" integer NOT NULL ); CREATE TABLE "polls_question" ( "id" serial NOT NULL PRIMARY KEY, "question_text" varchar(200) NOT NULL, "pub_date" timestamp with time zone NOT NULL ); ALTER TABLE "polls_choice" ADD COLUMN "question_id" integer NOT NULL; ALTER TABLE "polls_choice" ALTER COLUMN "question_id" DROP DEFAULT; CREATE INDEX "polls_choice_7aa0f6ee" ON "polls_choice" ("question_id"); ALTER TABLE "polls_choice" ADD CONSTRAINT "polls_choice_question_id_246c99a640fbbd72_fk_polls_question_id" FOREIGN KEY ("question_id") REFERENCES "polls_question" ("id") DEFERRABLE INITIALLY DEFERRED; COMMIT;
總結
以上就是本文關于淺談Django學習migrate和makemigrations的差別的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。