Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python psycopg2 psycopg2.InternalError相关对象_Python_Postgresql_Psycopg2 - Fatal编程技术网

Python psycopg2 psycopg2.InternalError相关对象

Python psycopg2 psycopg2.InternalError相关对象,python,postgresql,psycopg2,Python,Postgresql,Psycopg2,我在heroku上使用peewee,但根据peewee文档,删除相关表必须在代码中完成 问题是怎么做 我有以下型号 class WebPage(Model): title = CharField() class Term(Model): name = CharField() class WebPageTerms(Model): term = ForeignKeyField(Term) webpage = ForeignKeyField(WebPage) 包含postgres

我在heroku上使用peewee,但根据peewee文档,删除相关表必须在代码中完成

问题是怎么做

我有以下型号

class WebPage(Model):
  title = CharField()

class Term(Model):
  name = CharField()

class WebPageTerms(Model):
  term = ForeignKeyField(Term)
  webpage = ForeignKeyField(WebPage)
包含postgresql自定义语句的Drop table方法:

def drop_tables():
   WebPage.drop_table(fail_silently=True)
   Term.drop_table(fail_silently=True)
   WebPageTerms.drop_table(fail_silently=True)
作为部署的一部分,我删除所有表并创建它们,以便添加新字段

我尝试了以下方法,但仍然不起作用:

conn = psycopg2.connect("dbname='' user='' host='' password=''")
curr = conn.cursor()
curr.execute("DROP table webpageterms CASCADE")
curr.execute("DROP table webpage CASCADE")
curr.close()
conn.close()
但我总是犯同样的错误

psycopg2.InternalError:无法删除表网页,因为其他 对象依赖于it详细信息:约束webpageterms\u网页\u id\u fkey 在表webpageterms上取决于表网页提示:使用DROP。。。 级联以删除从属对象

我怎样才能放下这些桌子

**编辑** 试图将代码更改为:

curr.execute("ALTER TABLE webpageterms DROP CONSTRAINT webpageterms_webpage_id_fkey")
但我得到了:

psycopg2.InternalError: cannot drop table webpage because other objects depend on it
DETAIL:  constraint webpageterms_webpage_id_fkey on table webpageterms depends on table webpage
HINT:  Use DROP ... CASCADE to drop the dependent objects too.

首先尝试删除外键上的约束:

ALTER TABLE“webgeterms”DROP CONSTRAINT“webgeterms\u webpage\u id\u fkey”

和(虽然我不知道这里外键的确切名称,因为它没有列出)

ALTER TABLE“webgeterms”DROP CONSTRAINT“webgeterms\u term\u id\u fkey”


首先尝试删除外键上的约束:

ALTER TABLE“webgeterms”DROP CONSTRAINT“webgeterms\u webpage\u id\u fkey”

和(虽然我不知道这里外键的确切名称,因为它没有列出)

ALTER TABLE“webgeterms”DROP CONSTRAINT“webgeterms\u term\u id\u fkey”


按以下顺序删除它们:

WebPageTerms.drop_table(fail_silently=True)
Term.drop_table(fail_silently=True)
WebPage.drop_table(fail_silently=True)
Peewee附带了一个用于删除表的助手——它通过以下外键为您按拓扑对表进行排序:

from peewee import drop_model_tables
drop_model_tables([WebPage, Term, WebPageTerms])  # <-- will sort them correctly
从peewee导入drop\u model\u表

删除模型表格([WebPage,Term,WebPageTerms])。按以下顺序删除:

WebPageTerms.drop_table(fail_silently=True)
Term.drop_table(fail_silently=True)
WebPage.drop_table(fail_silently=True)
Peewee附带了一个用于删除表的助手——它通过以下外键为您按拓扑对表进行排序:

from peewee import drop_model_tables
drop_model_tables([WebPage, Term, WebPageTerms])  # <-- will sort them correctly
从peewee导入drop\u model\u表

删除_model_tables([WebPage,Term,webgeterms])#删除约束可以解决问题,但可以通过按不同顺序删除约束来更轻松地解决问题。删除约束可以解决问题,但可以通过按不同顺序删除约束来更轻松地解决问题。