【问题标题】:Accessing Existing Data in a SQL Server Table with Django使用 Django 访问 SQL Server 表中的现有数据
【发布时间】:2018-01-26 10:20:11
【问题描述】:

我已使用 django-pyodbc-azure 将 django 连接到 SQL Server。我是 django 的新手。我在 django models.py 中创建了一个模型,并且能够将模型迁移到 SQL Server。已创建所有正确的表。

我有最终将由应用提供的历史数据。是否可以访问在同一个数据库中保存此历史数据的现有表?还是直接将历史数据加载到 django 创建的新表中更聪明?

从概念上讲,我认为可以为现有表制作模型(通过 inspectdb 或手动)。但是,添加这些模型会导致 django 在执行迁移时创建新表,而不是识别表已经存在。

什么是最佳实践?我认为创建所有新表,然后在代理中设置作业以将历史数据加载到这些新表中可能会更干净。

【问题讨论】:

    标签: python sql-server django python-3.x django-pyodbc-azure


    【解决方案1】:

    如果您 100% 确信可以在 Django 模型中描述历史表的确切格式和约束,那么您可以尝试这样做并运行makemigrations,然后使用--fake-initial 标签。当您使用现有数据库初始化新应用程序时,这是推荐的过程。

    本质上,您是在告诉 Django 表应该是什么样子,而不是要求它为您设置表,因为它已经存在。但是,请确保 Django 具有正确的表名称 - customizing table names 可能会很棘手。

    但是,如果您对建立一个能够完美描述您的表格的模型有任何疑问,请创建一个新表格并将旧数据加载到其中。那会更干净,因为您知道 Django 拥有它需要的有关表的所有信息。如果您的旧数据不干净或可能包含重复数据,它还允许您对传入数据应用新的约束。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-25
      • 1970-01-01
      • 1970-01-01
      • 2017-07-23
      • 1970-01-01
      • 1970-01-01
      • 2015-11-17
      • 1970-01-01
      相关资源
      最近更新 更多