我了解Django使用迁移文件处理数据库创建,并且对表的任何更改都是使用新迁移文件中的ALTER语句进行的。

我的问题不是特定于Django的:

在表上执行初始CREATE,然后进行多个ALTER操作,是否会以任何方式影响表的性能?如果在中间阶段插入数据怎么办?

转储最新的模式和数据并执行单个CREATE会更好吗?

最初,我认为最好不要将迁移提交到github,因为它们无论如何都是从models.py文件派生的。现在,我意识到标准做法是继续更新github上的迁移。有什么理由比使用更新的模型文件运行makemigrations更好?

最佳答案

如果您的代码已经部署并且有一些客户端数据-您需要提交迁移...如果您使用的是旧版数据库,则同样适用...在其他情况下,请不要这样做。

但是,如果您打算部署项目,则最后一次提交应该是初始迁移。

而且,如果您担心某些用户数据在迁移过程中会丢失,则应检查数据库管理系统的文档...但是,几乎所有情况下,表的结构都会被阻塞,从而阻止读取或写入操作。

ALTER TABLE without locking the table?

关于mysql - 数据库表(和django迁移)。 DR/CREATE最终表v/s增量添加列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31104729/

10-12 21:59
查看更多