Python pgsync.exc.ForeignKeyError:“public.book”和“public.book_author”之间没有外键关系”
Elasticsearch索引无法通过pgsync工作 下面是我的schema.jsonPython pgsync.exc.ForeignKeyError:“public.book”和“public.book_author”之间没有外键关系”,python,postgresql,
elasticsearch,Python,Postgresql,
elasticsearch,Elasticsearch索引无法通过pgsync工作 下面是我的schema.json [ { "database": "book", "index": "book_data", "nodes": [ { "table": "book", "schema": &qu
[
{
"database": "book",
"index": "book_data",
"nodes": [
{
"table": "book",
"schema": "public",
"columns": ["id", "title", "isbin"],
"children": [
{
"table": "book_author",
"schema": "public",
"columns": ["id", "book_id", "author"],
"relationship": {
"variant": "object",
"type": "one_to_one"
}
}
]
}
]
}
]
因此,上表没有外键约束
创建索引时pgsync抛出错误
pgsync.exc.ForeignKeyError:“public.book和public.book\u作者之间没有外键关系”
如果我对定义了外键的表也这样做,那么它工作正常
关于如何在不添加外键约束的情况下执行此操作的任何解决方案。为什么不希望避免使用正确的方法;只需创建一个外键。毕竟,这就是它们存在的原因。如果您真的反对它,那么您可以通过删除关系定义来完全隐藏表是相关的这一事实。然后写入数据库触发器,从book中为book\u author中的book\u id选择,以确保它存在。您还需要检查任何一个表的更新,以及当您从包含book_author子项的书中删除时会发生什么,可能还有更多。听起来要避免使用已经内置的东西需要做很多工作。@Belayer首先感谢您的回复。但是它太旧了,而且是一个巨大的数据库,这就是为什么我想要一个单独的数据集而不用它。