DjangModelTranslation回退原始字段值

2024-05-20 14:18:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个很大的Django应用程序,它被互联网用户积极使用。我正在尝试将django-modeltranslation添加到我的一个应用程序中。在开发过程中,通过以下步骤一切正常:

  1. 安装django modeltranslation并进行适当的模型更改。在
  2. 为它创建南迁移python manage.py schemamigration myapp --auto
  3. 应用迁移python manage.py migrate myapp
  4. 运行django modeltranslationmanagement命令从原始字段python manage.py update_translation_fields填充默认语言

我的问题是在第3项和第4项之间。如果我在生产环境中运行迁移,那么转换后的模型将不会向用户显示任何内容(我不能有一个停机时间),直到我运行4号,这可能需要一些时间才能完成。在

我想知道是否有一种方法可以在没有翻译的情况下将译文回退到该领域的原始内容。这将回退到另一个翻译fallback,并访问原始字段original。但是如果转换不存在,我需要模型字段默认为原始字段值。在

谢谢你


Tags: django用户py模型应用程序内容manage过程
2条回答

我可以在不需要克隆数据库的情况下解决这个问题。我所做的是:

  1. 部署一个带有迁移但没有实际的django模型转换更改的版本。在
  2. 运行迁移。这将向转换后的模型添加多个字段,但代码仍将指向原始字段。在
  3. {cd1>运行管理命令。这将把原始字段值克隆到默认语言字段。在
  4. 使用django模型转换更改部署代码的更新版本。在
  1. 将生产数据库克隆到登台环境。在
  2. 在转移中应用迁移。在
  3. 验证所有工作在准备阶段。

  4. 然后:

    a.将网络配置指向转移,在空闲时配置生产并重新配置网络(0停机)。在

    b.使用所需的包在live上更新生产环境,并将数据库从临时环境复制到生产环境中(最少的停机时间)。

相关问题 更多 >