模型设置(Model Settings)
以下的属性可以指定在你的模型定义的上层,来覆写该模型的默认值。修改 config/models.js
来覆写所有模型共享的默认设置。
migrate
migrate: 'safe'
总之,此设置控制了 Sails 是否/如何尝试在你的结构自动重建 tables/collections/sets 等。
在生产环境中(NODE_ENV === "production")Sails 总是使用 migrate:"safe"
来保护意外删除你的资料。然而在开发过程中,你有其他几个方便的选项:
- safe - 永远不要自动迁移我的资料库。我会自己去做(手动)
- alter - 自动迁移,但尝试保留现有资料(实验性)
- drop - 每次启动 Sails 时清除/删除所有资料并重建模型
当你启动 sails 应用程序时,waterline 会验证你的资料库的所有资料。这个标记告诉 waterline 资料毁损时该如何处理资料。你可以设置这个标记为 safe
,将忽略毁损的资料并继续启动。你还可以将其设置为
自动迁移策略 | 说明 |
---|---|
safe |
永远不要自动迁移我的资料库。我会自己手动去做 |
alter |
自动迁移,但尝试保留现有资料(实验性) |
drop |
每次启动 Sails 时清除/删除所有资料并重建模型 |
请注意,使用
drop
或alter
可能失去你的资料。当心,永远不要在生产环境使用drop
或alter
。
schema
schema: true
在支持无结构(Schemaless)资料结构资料库切换无结构(Schemaless)或结构(Schema)模式的标记。如果关闭,将允许你储存任意资料的记录。如果开启,只有定义在模型的 attributes
属性对象会被储存。
对于不需要结构的桥接器,如 Mongo 或 Redis,默认设置是 schema:false
。
connection
connection: 'my-local-postgresql'
此模型将从已设置的资料库连线取得和储存资料。默认为 localDiskDb
,默认的连线使用 sails-disk
桥接器。
identity
identity: 'purchase'
此模型的小写唯一键(Unique key),例如 user
。默认情况下,会自动从它的文档名称自动推测模型的 identity
。你永远不应该在模型改变这个属性。
globalId
globalId: 'Purchase'
这个标记变更了你可以存取模型的全局名称(如果启用了模型的全局化)。你永远不应该在模型改变这个属性。要停用全局,请参考 sails.config.globals
。
autoPK
autoPK: true
切换模型中自动定义主键的标记。此默认 PK 的细节依桥接器而有所不同(例如 MySQL 使用一个自动递增的整数主键,而 MongoDB 使用乱数字串 UUID)。在任何情况下,由 autoPK 产生的主键是唯一的。如果关闭,默认将不会建立主键,你将需要手动定义一个,例如:
attributes: {
sku: {
type: 'string',
primaryKey: true,
unique: true
}
}
autoCreatedAt
autoCreatedAt: true
切换模型中自动定义 createdAt
属性的标记。默认情况下,当记录建立时 createdAt
属性会自动设置为目前时间戳记,例如:
attributes: {
createdAt: {
type: 'datetime',
defaultsTo: function (){ return new Date(); }
}
}
autoUpdatedAt
autoUpdatedAt: true
切换模型中自动定义 updatedAt
属性的标记。默认情况下,当记录被更新时 updatedAt
属性会自动设置为目前时间戳记,例如:
attributes: {
updatedAt: {
type: 'datetime',
defaultsTo: function (){ return new Date(); }
}
}
tableName
```java