Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.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 pgsync.exc.ForeignKeyError:“public.book”和“public.book_author”之间没有外键关系”_Python_Postgresql_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch - Fatal编程技术网 elasticsearch,Python,Postgresql,elasticsearch" /> elasticsearch,Python,Postgresql,elasticsearch" />

Python pgsync.exc.ForeignKeyError:“public.book”和“public.book_author”之间没有外键关系”

Python 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

Elasticsearch索引无法通过pgsync工作

下面是我的schema.json

[
  {
    "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首先感谢您的回复。但是它太旧了,而且是一个巨大的数据库,这就是为什么我想要一个单独的数据集而不用它。