数据版本的迁移复用

做项目的时候尝试使用版本来更新迭代

所以就去看了版本迁移的相关文章,发现如果是数据库迁移的话,不能直接一步登天,要不断的更新,从0.0.1到0.0.5,不能着急直接0.0.1——0.0.5,要0.0.1——0.0.2.......0.0.4——0.0.5
同时其他要注意的是
迁移过之后,我们会发现在数据库中多了迁移模型的数据表,查看相应表也可以看到我们所建立的字段和类型。
但也多了几张表,其中一张便是django_migrations,这张表即是记录我们在每次执行迁移操作时记录的迁移文件的数据表。具体记录的是模块和与其对应的迁移文件名。

在我们协同开发过程中,遇到模型复用和更新迭代是最常见的事情,有时候我们会多次数据库迁移来对旧表进行修改。但随着迭代版本的增加太多的迁移文件有时却让自己很烦,在版本控制时也会产生一些冲突和意想不到的bug。那么有时候就需要重新迁移文件,所以在删除迁移文件migrations的同时还要清楚django_migrations表里的记录。来再次重新迁移。
那么通过这一点规律来做一点小事情。
有时候,在版本控制的时候,每个人的操作习惯不太相同,有些开发者喜欢不提交迁移文件,而在服务器拉下代码后进行迁移操作。但当项目上线之前跑量的过程中却清除了数据库中的数据,再次提交migrate操作时就会出现迁移数据表已经存在的错误信息。(当然,这并不影响服务器的运行,也不会有任何异常,只是一直会有个报错而已罢了),干掉错误信息!一张两张表可能我们会选择删除表之后重新迁移,但是如果模型过多删除表的操作也相应增多(况且,有一些表的数据我还不想全部删除)。

所以我们要去看看官方文档怎么说的

You should think of migrations as a version control system for your database schema. makemigrations is responsible for packaging up your model changes into individual migration files - analogous to commits - and migrate is responsible for applying those to your database.
The migration files for each app live in a “migrations” directory inside of that app, and are designed to be committed to, and distributed as part of, its codebase. You should be making them once on your development machine and then running the same migrations on your colleagues’ machines, your staging machines, and eventually your production machines.

中文翻译

你可以想象 migrations 相当一个你的数据库的一个版本控制系统。makemigrations 命令负责保存你的模型变化到一个迁移文件 - 和 commits 很类似 - 同时 migrate负责将改变提交到数据库。
每个 app 的迁移文件会保存到每个相应 app 的“migrations”文件夹里面,并且准备如何去执行它, 作为一个分布式代码库。 每当在你的开发机器或是你同事的机器并且最终在你的生产机器上运行同样的迁移,你应当再创建这些文件。

其实无非是集中情况而已罢了

如果开发环境和生产环境使用同一数据库,
那么完全不用考虑这个问题,只要对django_migrations表进行备份,不要误删就好了。在提交代码时提交迁移文件,在服务器上也不用执行相应的迁移操作了。

如果 开发环境和生产环境使用不同数据库,
那么这个问题其实也很好解决,提交迁移文件之后直接在服务器进行迁移操作。或者不提交在服务器上自主生成迁移文件,再进行迁移操作。那么在随着版本迭代的过程中,开发环境的迁移文件也许会比生产环境的迁移文件多得多,那么就产生了也许在不同开发者的开发设备中版本不统一问题。再加上每人操作习惯不同,不提交迁移文件就会产生在服务器端重新迁移,对于日后的版本控制相当不友好。
所以,其实对于迁移文件也是应该直接提交至远程仓库的。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容