首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >大型网站如何在使用Django的同时处理即时的模式更改?

大型网站如何在使用Django的同时处理即时的模式更改?
EN

Stack Overflow用户
提问于 2010-09-24 01:27:42
回答 1查看 112关注 0票数 0

我一直在使用south,但我真的讨厌不得不再次手动迁移数据,即使我对一个类进行了很小很小的更新。如果我不使用django,我可以很容易地改变表模式,并在类中进行调整,这样我就很好了。

我知道大多数人可能会告诉我提前正确地思考模式,但实际上,有时您需要立即进行更改,我不认为使用south是理想的。

有没有人们使用的某种高级方法,甚至可以修改Django本身的核心?还是有什么关于south的东西不是我只是在摸索?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-09-24 15:12:55

我真的讨厌不得不再次手动迁移数据,即使我对一个类做了一个很小很小的更新。

您能指定哪种类型的更新吗?如果您是指添加新字段或编辑现有字段,那么显然是这样的。如果您的意思是修改在字段上操作的方法,那么就不需要迁移。

我知道大多数人可能会告诉我要提前正确地想出模式

三思而后行肯定会有所帮助。经验也会有所帮助。但很明显,你不可能预见到一切。

但现实地说,有时候你需要立即做出改变,我不认为使用

是理想的。

老实说,我并不信服这个论点。如果更改可以使用SQL“立即”部署,那么我认为它们也可以使用South部署。特别是如果您已经使用Fabric或类似工具自动部署。

此外,我发现很难相信使用生成的脚本执行迁移所花费的时间会比首先编写适当的SQL然后执行它所花费的时间要长得多。至少在我的经验中不是这样的。

一个例外情况可能是ORM没有SQL的等价物。在这种情况下,您仍然可以通过(South)迁移脚本执行原始SQL。

,还是南方有什么我不是在摸索的?

我怀疑您不会去理解有序的、受版本控制的、可逆的迁移。仅使用SQL的迁移并不总是设计为可逆的(我知道也有例外)。除非开发人员特别注意保持它们的有序,否则它们是不有序的。我甚至见过人们在生产环境中触发潜在的麻烦更新,甚至没有先暂停启动一个事务,然后在没有记录的情况下丢弃SQL。

我不是在质疑你的技能或对细节的关注;我只是指出我认为你与南方脱节的原因。

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3780978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档