django 如何在生产中更新模型属性

ncecgwcz  于 2023-10-21  发布在  Go
关注(0)|答案(1)|浏览(105)

我有一个三年前部署的Django应用程序,它一直运行得很好,让我们在实验室的生活变得更轻松。最近有一个需求,这是没有考虑在一开始,我已经添加了一些功能的应用程序。这涉及到修改一些Model方法和一些AdminModel方法。不幸的是,Web开发不是我的领域,这是我在业余时间用Python做的一件事,现在我不确定如果我从存储库中提取更改会发生什么。我记得在开发过程中,

manage.py migrate
manage.py makemigrations

在对模型属性进行任何更改之后。在这种情况下,它只是我修改的方法。我还需要在生产服务器中运行这些命令吗?我是否会丢失数据(这是不能容忍的)?我使用django默认生成的sqlite标准数据库。
提前多谢了。

fivyi3re

fivyi3re1#

新的或更改的Model方法不需要迁移。只有在添加、删除或修改模型 * 字段 * 时才会生成迁移。换句话说,您更改了底层DB表的结构。
简单的迁移没什么可怕的。如果您添加一个新的字段与默认值,所有现有的对象将获得新的字段添加与默认值。
第一

./manage.py makemigrations

要检查错误并创建迁移文件(在your_model/migrations/中),请执行以下操作:

./manage.py migrate

来应用它们。
显然,在更改生产数据之前,应该首先在测试数据库上执行此操作。在迁移之前备份生产数据库也是一个好主意,以防万一。(我从来没有需要备份,但我喜欢知道它的存在!)

相关问题