我有一个处理各种服务配置的数据库。一个表包含存储数据的位置和数据所属的数据等,另一个表包含如何收集数据的配置(CollectionConfigFTP,CollectionConfigAPI等)。可以有许多表来保存数据收集配置,但只有一个表用于数据属于谁(DataTable)。目前我有一个数据检索类型,我在DataTable上检查它是否转到正确的CollectionConfig表以获取服务的配置。我在一个唯一的DataTable UUID上链接这两个,但我无法弄清楚我将如何强制执行DataTable UUID必须在其中一个配置表中,反之亦然。我试图在CollectionConfig表上有一个单面约束:
"onUpdate": "CASCADE",
"onDelete": "SET NULL",
"references": {
"model": {
"tableName": "DataTable",
"table": "DataTable",
"name": {
"tableName": "DataTable",
"$schema": "collection",
"$schemaDelimiter": ""
},
"schema": "collection",
"delimiter": "."
},
"key": "DataTableGUID"
但它引发了一个错误:
SequelizeDatabaseError: relation "collection.DataTable" does not exist.
我注意到可以选择添加约束,但我不知道如何在任何地方引用表。
queryInterface.addConstraint('Users', ['roles'], {
type: 'check',
where: {
roles: ['user', 'admin', 'moderator', 'guest']
}
});