在Django ORM之外编辑数据库

Mal*_*umi 5 python git django postgresql

如果一个人正在使用Django,通过pgadmin或psql直接对数据库(在我的情况下是postgres)进行的更改会发生什么?

迁移如何处理此类更改?他们是否优先考虑ORM认为的事态,或者Django是否覆盖它们并强加它自己的变革历史感?

最后,如果有的话,如何通过git实现或避免这些问题中的任何一个?

谢谢.

Avi*_*aor 4

您可以从 django 迁移中完全排除模型,然后您负责将架构调整为 django 代码(或将 django 代码调整为现有架构):

class SomeModel(models.Model):

    class Meta:
        managed = False  
        db_table = "some_table_name"   

    name = models.Fields....
Run Code Online (Sandbox Code Playgroud)

请注意,您不能两者兼得,因此如果可能的话,首选迁移。您始终可以定义自定义 SQL 迁移,这将节省外部更改的需要。但是,有时您确实需要在其他地方处理架构而不是迁移,然后使用 Managed=False