Datajoint autopopulate make function error: DataJointError: A relation must have primary dependencies for auto-populate to work

Datajoint autopopulate make function error: DataJointError: A relation must have primary dependencies for auto-populate to work

我收到以下错误:

“DataJointError:关系必须具有主要依赖关系才能自动填充工作” 我认为这是一个非常基本的开始,首先定义手册 table 然后是导入的手册。

在这种情况下,我们有一个文件夹中的 matlab 文件名手册 table。然后,我们希望使用这些文件中的数据自动填充导入的 table。所以这些 table 之间的依赖关系应该是一对一匹配的。但是,当我们尝试如下填充时出现以下错误:DataJointError:关系必须具有主要依赖关系才能自动填充以尝试实现 make 函数。

上游会话 table 有主键“文件名”,我们希望导入的 table 开始定义为:

@schema
class Trials(dj.Imported):
    definition = """
    trial : int
    -> Session
    ---
    type = null : int
    outcome = null : int
    """

    def make(self, key):  # key is the primary key of one of the entries in the table `Scan`
        name = ((Session & key).fetch1()['filename'])
        print(name)
    
Trials.populate()

我已经尝试关闭 jupyter notebook 并重新打开、重新启动内核等。在此先感谢您的帮助!

这已在 https://github.com/datajoint/datajoint-python/issues/902 中报告,将很快得到解决。这是因为在填充之前依赖项没有加载到内存中。中间修复是在调用 populate 之前绘制模式图——这将加载依赖项并使 populate 正常工作。