我有一个与django应用程序连接的现有postgres数据库。我想删除django模型中的一个字段。
我有两种方法可以做到这一点:
手动从django创建的上一次迁移期间创建的自动生成文件中删除该字段->将该列手动放到现有数据库中->使用新迁移再次运行迁移。
再次运行makemigrations,这将导致django创建另一个迁移文件,以删除上述字段->使用新迁移迁移迁移先前存在的数据库。
有人能告诉我什么是移除该字段的最佳实践吗?
我担心当我们考虑选项2时要处理的迁移文件的数量。我一直认为,迁移文件越少,代码库就越整洁。
django设计师应该考虑在调用makemigration时根据上下文修改现有文件,而不是创建新文件。
干杯
飞机飞越力
1条答案
按热度按时间8cdiaqws1#
我也不是这方面的Maven。我认为更安全的方法是选项2。在django模型中删除该字段并使用makemigrations不会带来太多麻烦,尽管创建了额外的迁移。
选项1也是可能的,可以在测试环境中试用,但是我不确定是否推荐在生产环境中使用。理想情况下,这也应该起作用,但如果涉及foreignkey等,可能会出现问题。