【问题标题】:How to rename a django app withouth affecting the database?如何在不影响数据库的情况下重命名 django 应用程序?
【发布时间】:2014-07-26 10:03:25
【问题描述】:

在一个旧项目中有一个应用程序(我们称之为oldapp)。我正在维护这个项目,我必须将应用程序重命名为其他名称(比如说newapp)。问题是数据库表是用oldapp_ 前缀创建的。

出于显而易见的原因,我想避免使用新前缀重新创建数据库。

那么,是否可以在不影响项目的情况下重命名应用程序?

更新:这是我遇到的错误之一: relation "newapp_dma" does not exist

【问题讨论】:

  • 为什么要重命名?
  • 我问自己同样的问题。我必须。其他人将很快开始使用应用程序为这个项目做出贡献。每个应用程序都必须有一个特定的名称。第一个应用程序是用一个不遵守规则的名称创建的,它会引起其他贡献者的混淆。我需要重命名它。
  • 向南使用:south.aeracode.org
  • South 会重命名数据库表吗?我可能不想这样做(因为项目很复杂,而且我是新手,目前我不想影响数据库)
  • 另见stackoverflow.com/questions/4566978/…(几乎可以说是重复问题)。

标签: django


【解决方案1】:

你可以,但我不建议这样做。为了保持一致性,请将您的数据迁移到新的应用名称(可能使用 South,或者只是在数据库中进行一些手动重命名)。

如果必须,请查看应用类中 Meta 子类中的 db_table

class Something(Model):

  class Meta:
    db_table = 'newapp_something'

请参阅docs

但是,这会在某些时候引起混淆,使用不一致的名称。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-15
    • 2018-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-21
    相关资源
    最近更新 更多