Django 1.10 - makemigrations 命令未检测非托管模型的更改

2023-12-30

在此先感谢您的帮助。在 mi 项目中,我有一个应用程序,涉及从现有数据库生成的模型。由于这些表由 DBA 管理,因此它们保留为非托管模型。由于模式的变化,我们可能需要从数据库重新生成模型,因此我们为每个模型创建了替代代理模型,以将我们管理的部分与我们不管理的部分分离。下面您可以看到基于我们当前布局的示例。

该示例显示了一个生成的模型与另一个生成的模型具有 FK,因此代理模型具有对非代理模型的引用。我已阅读指出的讨论here https://stackoverflow.com/a/17871399/2658613并尝试了一些所示的方法,但是它们都不适合我。所以现在我正在尝试更新生成的模型以指向代理模型,我认为这不会引起任何问题。

正如我所看到的,Django 为非托管模型生成了迁移,我认为 makemigration 会检测到该模型的 FK 中的更改。然而,当我跑步时manage.py makemigrations它表明没有检测到任何变化。这是非托管模型 makemigrations 的预期行为吗?

# app/models.py
class SacLocation(models.Model):
    sacloc_location_id = models.IntegerField(primary_key=True)
    sacloc_name = models.CharField(max_length=50, blank=True, null=True)
    sacloc_state = models.IntegerField(blank=True, null=True)

    # I'm changing this Field to point to the proxy model
    # e.g. it will look like this, but the change is not detected by makemigrations
    # sacloc_location_grouping = models.ForeignKey('LocationGroupingProxy', 
    #            models.DO_NOTHING, db_column='sacloc_location_grouping')
    sacloc_location_grouping = models.ForeignKey('SacLocationGrouping', 
                 models.DO_NOTHING, db_column='sacloc_location_grouping')

    class Meta:
        managed = False
        db_table = 'sac_location'


class SacLocationGrouping(models.Model):
    saclgr_location_grouping__id = models.IntegerField(primary_key=True)
    saclgr_name = models.CharField(max_length=50, blank=True, null=True)

    class Meta:
        managed = False
        db_table = 'sac_location_grouping'


class LocationProxy(SacLocation):        
    class Meta:
        proxy = True

    def __str__(self):
        return u'%s' % (self.sacloc_name)


class LocationGroupingProxy(SacLocationGrouping):
    class Meta:
        proxy = True

    def __str__(self):
        return u'%s' % (self.saclgr_name)

我对代码进行了一些更改,以将非托管模型(最初是 FK 到其他非托管模型)指向代理模型。这些更改都没有导致生成新的迁移,因此我认为在这种情况下是预期的行为。查看了 Django 源代码,但未能发现检测到此更改的位置。最后,当我对代理模型中的元选项(例如排序)进行更改时,Django 实际上检测到了这些更改并创建了一个新的迁移。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django 1.10 - makemigrations 命令未检测非托管模型的更改 的相关文章

  • 在 Django(Python) 中向用户提供 Excel(xlsx) 文件下载

    我正在尝试使用 Django 创建和提供 Excel 文件 我有一个 jar 文件 它获取参数并根据参数生成 excel 文件 并且它可以正常工作 但是 当我尝试获取生成的文件并将其提供给用户下载时 文件损坏了 它的大小为 0kb 这是我用
  • django:如何在模板html页面内进行计算?

    您好 我正在使用缩略图插件来获取图像的宽度和高度 现在我想使用从缩略图插件获取的高度来定义 img 标签的填充 例如 img style padding top img height 2 src 但是我在这里遇到错误 django不允许这样
  • 具有 auto_now_add 的 Django DateTimeField 要求默认值

    我的模型中有这个字段created at models DateTimeField auto now add True 当我尝试进行迁移时出现错误 You are trying to add the field created at wit
  • 如何删除django中级联的一对一相关模型?

    背景 我在 Django 1 8 5 中定义了以下模型 class PublishInfo models Model pass class Book models Model info models OneToOneField Publis
  • Django:模拟模型上的字段

    如何将模拟对象分配给该模型上的用户字段 无论如何都要绕过 SomeModel user 必须是 User 实例 检查吗 class SomeModel models Model user models ForeignKey User 我不会
  • 可以用 Django 制作移动应用程序吗?

    我想知道我是否可以在我的网站上使用 Django 代码 并以某种方式在移动应用程序 Flutter 等框架中使用它 那么是否可以使用我现在拥有的 Django 后端并在移动应用程序中使用它 所以就像models views etc 是的 有
  • Django 模型:如何使用 mixin 类来覆盖 django 模型以实现 save 等功能

    我想在每次保存模型之前验证值 所以 我必须重写保存函数 代码几乎是一样的 我想把它写在 mixin 类中 但失败了 我不知道如何写 super func 我英语不好 抱歉 class SyncableMixin object def sav
  • 如何添加身份验证中间件 JWT django?

    我正在尝试创建一个中间件来使用 JWT 进行身份验证 但在视图中 request user 始终是 AnonymUser 当我验证中间件通过用户模型更改 request user 时 确实如此 但在到达视图时 由于某种原因 request
  • 限制 Django 中的暴力登录攻击 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 是否有普遍接受的策略来保护 Django 应用程序免受此类攻击 有很多可用的库 例如Django 斧头 Django 防御者 Djan
  • Django 中基于类的视图分页

    我正在尝试对基于类的视图进行分页 这是我的观点 class IssuesByTitleView ListView context object name issue list def issues request issue list Is
  • Django admin:通过 URL 传递变量

    我想通过 URL 将变量传递到 django admin 中的另一个页面 看起来它不起作用 我想传递变量 name hello 并通过request GET get name 捕获它 但是url变成 e 1 经过之后 如果我使用默认参数 q
  • 如何在 Django 模板中显示站点的用户友好名称?

    我正在寻找一种在模板中显示我的 Django CMS 站点名称的方法 我创建了一个基本的 Django CMS 网站如下本指南 http docs django cms org en release 3 4 x introduction i
  • django 中计数器的原子增量

    我正在尝试自动增加 Django 中的一个简单计数器 我的代码如下所示 from models import Counter from django db import transaction transaction commit on s
  • 具有内联模型的 Django 管理页面加载速度非常慢

    我有一个带有单个内联模型的模型的 Django 管理页面 当内联模型有很多项目 例如 75 个 时 页面加载速度非常慢 大约 30 秒 即使我排除内联模型上的所有字段 让它只渲染名称 情况也是如此 删除内联模型会导致页面加载速度非常快 以秒
  • Django“模型”对象不可迭代

    我有一张表 其中显示了已注册的员工 我想根据他们的数据库生成一个简单的 HTML 页面 其中包括他们的姓名 id 职称等 为此 我将一个 id 传递给视图 以便它可以获取相应用户的详细信息并向我显示 一切正常 直到出现错误对象不可迭代 下面
  • Django 1.6 的静态文件

    我花了一整天但没有任何作用 我在这里看到了至少 20 篇关于同一主题的帖子 它们各不相同 有不同的建议 但没有一个对我有用 使用 Python 2 7 运行 Django 1 6 我正在尝试从 django 教程加载民意调查应用程序的 cs
  • django 保护用户上传的文件

    如何允许用户将文件上传到他们自己的用户指定的文件夹 并且只能看到他们已上传的文件 我正在使用 django 文件传输 目前 它让我可以选择将媒体放入哪个文件 但我可以将其放入任何用户的文件中并查看每个用户的媒体 这是我的 uploads m
  • AWS beanstalk + Django:502 错误网关 - ModuleNotFoundError:没有名为“应用程序”的模块

    我正在尝试将 Django 项目部署到 Elastic Beanstalk 我正在遵循他们的指南 https docs aws amazon com elasticbeanstalk latest dg create deploy pyth
  • 来自 django 教程 was_published_recently.admin_order_field = 'pub_date'

    From Django 教程 https www jetbrains com help pycharm 2017 1 creating and running your first django project html d28041e21
  • Django South - 将 null=True 字段转换为 null=False 字段

    我的问题是 转变的最佳做法是什么null True场变成null False使用 Django South 的字段 具体来说 我正在与ForeignKey 你应该先写一个数据迁移 http south aeracode org docs t

随机推荐

  • 依赖项中的共享文档文件导致事务错误

    我最近在桌面上安装了 Fedora 24 Workstation 并且能够毫无问题地安装所有内容 直到我尝试安装 steam 来自 rpmfusion 和 wine steam 和 wine 都具有 32 位库的依赖项 这些库已安装在 64
  • JVM 以编程方式获取堆中最大的对象

    How 以编程方式 从java应用程序 代理中 我是否获得堆中最大对象的 实时 摘要 包括它们的实例计数和大小 与分析器的做法类似 例如 下面是 JProfiler 的屏幕截图 通常 我曾经在真正需要的情况下使用堆转储 但现在我想弄清楚分析
  • 在 Azure DevOps Pipelines (YAML) 中通过手动批准跳过阶段

    对于我们的 Terraform 部署 我们使用具有 3 个阶段的 Azure DevOps 管道 plan 申请 手动审批 test 对于应用阶段 我们使用具有手动批准 检查 环境的部署作业 如果计划阶段没有显示任何变化 我们希望 跳过 应
  • TDD 和测试优先开发(或测试优先编程)之间有区别吗?

    这两个想法对我来说听起来非常相似 但可能存在细微的差异 或者是完全相同的事情 但以不同的方式解释 TDD 和测试优先开发 编程之间有什么关系 驱动因素是什么是有区别的 您是否对类 或系统 当然 这可以在不同的规模上发生 应该是什么样子有一个
  • Dockerfile 中的 VOLUME 命令有什么作用? [复制]

    这个问题在这里已经有答案了 我很难理解 VOLUME https docs docker com engine reference builder volume https docs docker com engine reference
  • 如何使用 VBA 将数据透视表过滤器放置在彼此上方?

    基本上 我有多个选项卡放在一起 每个选项卡都有多个数据透视表 每个数据透视表内置多个过滤器 这些需要可见才能确认您所看到的数据 因为非开发人员不知道如何访问或了解VBA代码 我想要的 数据透视表过滤器以列表形式相互重叠 我目前得到的 这是代
  • 如何在 Android 中获取可用的屏幕宽度和高度

    I m creating an app where I really need to know the correct screen dimensions Actually I know how to do that but a probl
  • ModuleNotFoundError:在虚拟环境中运行服务器时没有名为“django”的模块

    我是 python 学习的新手 在学习了 python 基础知识之后 我开始学习 python Web 框架 Django 为了这 安装 python 3 7 后 我按照以下步骤在 Windows 上安装 django 首先我打开cmd命令
  • 如何使用 Eclipse IDE 重新部署 Web 应用程序

    我是 Eclipse 新手 我使用 Tomcat 作为运行时服务器 但每次修改 jsp 页面时 Eclipse 仍然显示旧的页面 只是想知道如何重新部署应用程序以便反映更改 Eclipse 面向 Java EE 开发人员的 Eclipse
  • Node.js 中的安全随机令牌

    In 这个问题 https stackoverflow com questions 8838624 nodejs send email on registration 8842959 8842959Erik 需要在 Node js 中生成一
  • Sequelize,MySQL - 使用 JSON 列值过滤表中的行

    需要帮助了解如何使用 Sequelize 使用嵌套值过滤 MySQL 表 JSON 列中的行 文档中没有它 仅针对 PostgreSQL 和 MSSQL ref http docs sequelizejs com manual tutori
  • _Unwind_Resume 的多个定义

    一段时间以来 我一直在使用我编写的一小部分文件 以便更轻松地与 WinAPI 进行交互 虽然 当我想重用它们时 不断移动文件 等待它们重新编译等变得很痛苦 我最终决定将它们放入 DLL 中 然后就完成了 但我得到了一个每次我尝试使用该库时都
  • 绑定 ToConstant 和调用 InSingletonScope 是多余的吗?

    嗯 这个问题从标题就已经很简单地说明了 对于局部变量factory var factory Fluently Configure 这两行是否等价 Bind
  • 如何使用 Laravel 的 Eloquent 实现单表继承?

    目前我有一个名为的模型类Post class Post extends Eloquent protected table posts protected fillable array user id title description vi
  • iOS开发-无限关卡的uitableview

    我的 XML 数据采用具有可变深度的树结构 有时 数据馈送的深度可能为 50 级 有时则为 5 级 我应该为视图使用哪个 iOS UI 组件 我看到了 uitableview 但在打印叶节点之前它似乎只支持 1 层树 我还应该考虑另一个 U
  • React-native 调试 apk

    如何获取react native应用程序的调试版本 对于 apk 的发布版本 我使用 gt cd android gradlew assembleRelease 生成的 apk 将存储在 app build outputs apk 中 有没
  • 使用 Proc#call 时为自己提供价值

    当在 Ruby 中使用 Proc call 调用 lambda 函数时 self始终以定义函数时的值结束 而不是调用函数时的值 例如 p lambda self class Dummy def test p call end end d D
  • 使用 HTML5 和/或 jQuery 将文件上传到 WCF 服务

    我正在尝试仅使用 HTML5 和 JavaScript jQuery 将文件上传到我的 WCF 服务 WCF 服务是从 Windows 服务而不是 IIS 自托管的 因此我认为我无法使用 php 或 aspx 上传处理程序 这些文件是二进制
  • Apache Kafka:TimeoutException 然后什么都不起作用

    我正在尝试将消息从生产者发送到另一个 DC 中的 kafka 节点 生产者和消费者都设置为默认0 10 0 0配置和消息大小都不是那么小 大约 500k 大多数情况下 我在发送消息时会遇到以下异常 org apache kafka comm
  • Django 1.10 - makemigrations 命令未检测非托管模型的更改

    在此先感谢您的帮助 在 mi 项目中 我有一个应用程序 涉及从现有数据库生成的模型 由于这些表由 DBA 管理 因此它们保留为非托管模型 由于模式的变化 我们可能需要从数据库重新生成模型 因此我们为每个模型创建了替代代理模型 以将我们管理的