Django - 使用给定的 sql 转储创建其他模型并填充数据 [重复]

Posted

技术标签:

【中文标题】Django - 使用给定的 sql 转储创建其他模型并填充数据 [重复]【英文标题】:Django - Use the given sql dump to create the other models and to populate the data [duplicate] 【发布时间】:2018-03-24 07:51:05 【问题描述】:

我正在练习开发一个复杂的应用程序,我以前用 php 开发过相同的应用程序并有一个 sql 文件。我想知道如何创建新模型并从 sql 文件中填充数据。我已经阅读了关于从 JSON 文件中抓取的教程,但是是否有相同的在线资源。

【问题讨论】:

【参考方案1】:

您可以使用manage.py inspectdb 命令。

它将连接到数据库并创建模型类。

因此您需要手动创建数据库并使用数据库工具从 sql 文件中读取结构和数据。之后,您应该将连接设置放入您的 settings.py 文件并执行:

$ python manage.py inspectdb > models.py

文档 - Integrating with legacy database

UPD 据我了解,您想从 SQL 文件转移到仅 django 的解决方案。所以这就是你实现它的方法。

    使用 PgAdmin 等工具部署临时数据库和负载转储。 设置您的 django 应用,使其可以连接到同一个数据库 使用inspectdb 创建模型 使用dumpdata将值保存为json文件 从您的脚手架模型中删除 managed = False(从第 3 点开始) 使用makemigrations 命令创建迁移。

之后,您将能够使用 Django 工具部署您的应用程序:迁移以创建数据库结构和 loaddata 从 json 加载数据。

【讨论】:

我不明白。 sql文件是用php创建的。我想用 django 将数据加载到 postgresql。我不记得表格和列。 你有 SQL 文件,所以你不需要记住表和列。只需创建数据库和负载转储(例如使用 PgAdmin)。然后你可以使用 inspectdb 来创建模型。如果您不想在服务器上手动部署 SQL,您可以使用 manage.py dumpdata 创建 JSON。我用步骤指南更新答案

以上是关于Django - 使用给定的 sql 转储创建其他模型并填充数据 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Django:将SQL数据转储到xml文件中

如何使用 sql-maven-plugin 创建 SQL 转储

为单个 Django 1.7 应用程序重新创建表

如何以编程方式为 Django 中的给定模型生成 CREATE TABLE SQL 语句?

如何将大sql转储文件拆分成小块并在原始文件中维护每个记录,尽管后来删除了其他记录

使用 Django dumpdata 转储整体数据的子集?