为什么django没有结合makemigrations和迁移命令?

时间:2017-09-27 01:31:15

标签: django

我可以想到三个原因:

  1. 为用户提供灵活性"当"提交模型更改

  2. 调试模块化

  3. 或许资源消耗更大 数据库

  4. 但是,似乎迁移后不久就会发生迁移(教程/ youtube视频)。 那背后有一个我失踪的哲学吗?

1 个答案:

答案 0 :(得分:0)

当然有一些原因。

首先,' makemigrations'没有触及真正的数据库,它只是告诉django模型(数据库方案)是如何变化的,这样你就可以看到当你进行“迁移”时会发生什么。

这使得django更安全。

这也为新字段或数据库更改提供了默认选项..

其他原因是'还原'。 如果您想使用特定迁移回滚db scehme,您可以告诉django回滚到特定的迁移文件。

另一个原因是' reusable-app'原理。 如果您使用django创建应用程序,它可以通过no-db-interaction重用。这意味着如果您将应用程序(或项目)也部署到另一个项目或服务器,它只需要迁移'文件不是真正的数据库。