Bookshelf ORM 如何定义模型属性和数据类型
Bookshelf ORM How to define Model attributes and datatypes
我正在为我的 Express.js 应用程序使用 Bookshelf.js ORM,在 Bookshelf ORM 中仅给出了定义模型和关联的示例。
我在任何地方都找不到,如何定义模型属性和数据类型,例如
name: {
type: string
}
age: {
type: number
}
需要帮助..提前致谢..
你不能。属性及其类型取自数据库模式。在 Bookshelf 中最接近定义属性的是键定义:主键和外键。但即便如此,您也仅限于它们的名称和键语义,类型取决于它们的数据库类型。
但是如果您想在代码中定义它们,您可以使用 Knex Schema Builder and Migrations 功能。喜欢:
// 0001_people.js
'use strict';
exports.up = function(knex, Promise) {
return knex.schema.createTable('people', function(table) {
table.increments('id').primary();
table.string('name').unique().notNullable();
table.integer('age').notNullable();
});
};
exports.down = function(knex, Promise) {
return knex.schema.dropTable('people');
};
但请记住,这些定义与相应的 Bookshelf 模型无关。你有责任让他们保持同步吗?
我正在为我的 Express.js 应用程序使用 Bookshelf.js ORM,在 Bookshelf ORM 中仅给出了定义模型和关联的示例。
我在任何地方都找不到,如何定义模型属性和数据类型,例如
name: {
type: string
}
age: {
type: number
}
需要帮助..提前致谢..
你不能。属性及其类型取自数据库模式。在 Bookshelf 中最接近定义属性的是键定义:主键和外键。但即便如此,您也仅限于它们的名称和键语义,类型取决于它们的数据库类型。
但是如果您想在代码中定义它们,您可以使用 Knex Schema Builder and Migrations 功能。喜欢:
// 0001_people.js
'use strict';
exports.up = function(knex, Promise) {
return knex.schema.createTable('people', function(table) {
table.increments('id').primary();
table.string('name').unique().notNullable();
table.integer('age').notNullable();
});
};
exports.down = function(knex, Promise) {
return knex.schema.dropTable('people');
};
但请记住,这些定义与相应的 Bookshelf 模型无关。你有责任让他们保持同步吗?