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 转储创建其他模型并填充数据 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 sql-maven-plugin 创建 SQL 转储
如何以编程方式为 Django 中的给定模型生成 CREATE TABLE SQL 语句?