使用Django 2.x时扩展或避免迁移?

问题描述 投票:-1回答:2

我刚刚开始使用Django框架,我读到Django开发人员从版本2.0开始强制使用迁移。我可能是老上学,但我喜欢我的数据库与我的代码分开。我一直将我的数据库与我的代码模型分开。我认为迁移不会随着工程团队规模而扩展。

所以我的问题是2折。

  1. 你不能在没有迁移的情况下使用Django 2.0,因为我认为它不会很好地扩展并且不适合CI / CD管道吗?
  2. 如果我们无法避免数据库迁移,那么我们如何将它们集成到一个健壮的CI / CD管道中,其中模型可以由不同团队的不同开发人员进行更改。
django python-3.x django-migrations
2个回答
2
投票

是的你可以。您可以手动创建表并将Django设置为不管理表。

配置Django项目后,只需在终端python manage.py inspectdb > models.py上运行,django将在配置的数据库中选择模型。如果您的项目将使用现有或旧的数据库,这尤其好

然后,您可以告诉django不管理模型的元选项上的表:

class MyModel(models.Model):
    # your fields here

    class Meta:
       managed = False

See the docs here

但是,除非你有一个非常好的方法来跟踪你的表变化,我必须说这是一个错误。 Django迁移可帮助您跟踪模型的变化。如果您需要回滚或了解数据库历史记录,这将非常有用。


0
投票
  1. 迁移不是强制性的,你不清楚你认为在2.0中改变了什么来实现它们。
  2. 迁移适用于大型团队。如果你避开它们,你会让自己和你的团队成员更加努力。
© www.soinside.com 2019 - 2024. All rights reserved.