通过 django 将 db 与现有表同步以获取现有模式表,并自动更新表的几列和其余列
Posted
技术标签:
【中文标题】通过 django 将 db 与现有表同步以获取现有模式表,并自动更新表的几列和其余列【英文标题】:Syncing db with existing tables through django for an existing schema table and also updating few columns for the tables and the rest automatically 【发布时间】:2015-06-06 11:47:50 【问题描述】:我在 Django 中做一个 poc,我试图创建管理控制台模块,用于通过模型通过 django 管理控制台插入、更新和删除记录,它做得很好 我有 2 个问题。
1.我需要为现有表提供模型对象,这些表需要存在于特定的 schema.say schema1.table1 到目前为止,我正在为公共模式做 poc。 那么它可以在固定定义的模式中完成吗?如果可以,如何。任何参考都会非常有帮助
2.另外我想通过控制台更新表中的几列,其余列将自动完成,如 currenttimestamp 和创建日期等。是否可以通过默认 django 控制台,如果可以,请分享任何参考
1 的步骤
到目前为止,我所做的是在 model.py 中创建了一个类,其属性为作者、标题、正文、发布时间
然后我在 makemigrations 应用程序之后使用 sqlmigrate 来创建表,并且在迁移之后一直使用 django 的管理控制台来插入和更新创建的表的记录。但这仅适用于 POC。
现在我需要做同样的事情,但对于现有的表,我可以通过管理控制台与之交互并插入或更新这些现有表的记录。
默认情况下,这些表也是在公共架构中创建的。但是我使用的是 postgres,现有的表存在于不同的架构中,我想为这些现有的表插入、更新和删除。
我被困在这里,因为我不知道如何使用现有的数据库模式表配置模型,通过这些表我们可以通过 django 控制台以及不同的模式进行交互,而不是在公共模式中
步骤 2:
我还希望用户为几个列提供输入,例如假设在这种情况下,用户不需要将创建时间作为输入提供。而是在数据库更新或创建时应该小心
谢谢
【问题讨论】:
请发布您已经尝试过的内容以及您遇到的问题。 您好,我已经更新了帖子..请帮助我 【参考方案1】:为了让 Django 与现有数据库“交互”,您需要为其创建一个模型,该模型可以自动完成as shown here。这假设您的“外部”数据库不会经常更改,因为您必须保持模型同步,这很棘手 - 如果您需要,还有其他方法。
至于使用多个数据库模式 - 您是否有理由不能将您的 POC 表与其他表放在同一个数据库中? Django 支持多个数据库,但设置起来会比较困难。见here。
最后,听起来您对设置 Django 默认字段属性感兴趣。有关当前时间的示例,请参阅here。
【讨论】:
以上是关于通过 django 将 db 与现有表同步以获取现有模式表,并自动更新表的几列和其余列的主要内容,如果未能解决你的问题,请参考以下文章
将现有的 django 应用程序与 django-cms 集成