我正在尝试为现有的 postgresql 数据库开发一个 django 接口,该数据库使用各种模式,查看文献,下面的示例应该可以工作,但它只返回当我运行时在默认数据库中定义的模式python manaage.py inspectdb
。另外,当这有效时,如何定义在定义 django 模型时使用哪个模式?
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'OPTIONS' : {
'options': '-c search_path=public'
},
'NAME': 'gygaia',
'USER':'postgres',
'PASSWORD':'abc',
'HOST':'localhost',
'PORT':'5432',
},
'samples': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'OPTIONS' : {
'options': '-c search_path=samples'
},
'NAME': 'gygaia',
'USER':'postgres',
'PASSWORD':'abc',
'HOST':'localhost',
'PORT':'5432',
},
'excavation': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'OPTIONS' : {
'options': '-c search_path=excavation'
},
'NAME': 'gygaia',
'USER':'postgres',
'PASSWORD':'abc',
'HOST':'localhost',
'PORT':'5432',
},
}
Run Code Online (Sandbox Code Playgroud) 我有一个大问题,我对 postgresql 不太好,因为我使用 Django 进行查询,而且我只有 sql 查询的基础知识。
我的问题是有一个问题,超级用户删除了一个与我的表“客户”相关的字段(我不知道她是怎么做的,我没有设计系统,我只是管理它),所以有 120 个客户端从表中消失了,我从昨天开始备份(我知道备份有多重要),我想将所有数据从我的备份“复制”到缺少行的数据库中。
我试图只从 pgadmin 恢复表(简单的方法),但它说“重复键值违反了唯一约束“user_client_pkey”,详细信息:Key(id) = 461 已经存在。所以我猜我无法恢复,因为有与确切 id 匹配的值,是否有任何简单的方法(或程序)可以复制丢失的行,只提供 id 并填充我备份中的数据?
类似于比较行,如果没有具有该 id 的行,则在那里插入数据?我知道这不是一个简单的查询,但任何帮助都会很棒。我确定最简单的方法是回滚、删除数据库和恢复,但是有这么多表有更多信息,客户端是唯一真正需要恢复的。
我尝试创建一个新表并从备份中恢复数据但它没有填充(可能是因为它的名称与新表不匹配),我还更改了缺少行的表的名称,然后创建一个新表并从备份中恢复,但 pk 丢失了,我收到此错误:
我更改了表cliente的原始表,然后创建了一个新表并将其命名为原始表,恢复数据库,它填满了,但给了我这个错误:
由于表 public."admin_clienteB" 没有主键或 OID,您只能查看数据。没有主键的“编辑数据”工具无法插入新行和更改现有行。
任何帮助都会很棒。
我有一个用 Django 应用程序创建的 Postgres 数据库。当我转移它时,它从未重新索引任何内容,并且在尝试执行此操作时出现错误。似乎有很多表都有这个问题。有没有办法可以使用我在另一个问题中找到的这段代码并将其用于所有序列和表格?
SELECT setval('tablename_id_seq', (SELECT MAX(id) FROM tablename)+1)
Run Code Online (Sandbox Code Playgroud)