这是我的模型的样子
"name": "mClass",
"base": "PersistedModel",
"idInjection": true,
"options": {
"validateUpsert": true
},
"properties": {
"mClassName": {
"type": "string",
"required": true,
"index": {
"unique": true
}
},
"mClassUrl": {
"type": "string"
},
"mCreatedBy": {
"type": "string",
"required": true
},
"mCreatedAt": {
"type": "date",
"required": true,
"default": "$now"
},
"mUpdatedAt": {
"type": "date"
},
"mDeletedAt": {
"type": "date"
}
},
"validations": [],
"relations": {},
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$unauthenticated",
"permission": "DENY"
}
],
"methods": {}
}
我想将类名设为唯一。我尝试了index:{unique:true},但似乎无法正常工作,因为我仍然可以创建具有相同名称的类。请帮助我进行哪些更改。
或者,在您的[[mClass.js中,您可以执行以下操作:
module.exports = function (mClass) {
mClass.validatesUniquenessOf('mClassName');
};
"indexes": {
"indexName": {
"keys": {
"mClassName": 1
},
"options": {
"unique": true
}
}
}
然后,当服务器启动时,您需要在数据源上运行自动更新,例如,启动脚本是一个不错的选择。./server/boot/db-autoupdate.js
:
'use strict'; module.exports = async function(app) { // this will trigger the database structure update, like creating indexes (which is not handled by auto-migrate module await app.dataSources.db.autoupdate(); };
@model()
export class Client extends Entity {
@property({
type: 'string',
required: true,
index: {
unique: true,
},
})
name: string;
}
然后您必须更新您的架构:
npm run migrate
或重新创建它:
npm run migrate -- --rebuild
我猜PostgresQL也是支持和MySQL