教程 > sequelize 中文教程 > 阅读:21

sequelize 使用遗留表——迹忆客-ag捕鱼王app官网

虽然 sequelize 自认为可以开箱即用, 但是如果你要处理遗留表并向前验证应用程序,仅需要通过定义(否则生成)表和字段名称即可。

class user extends model {}
user.init({
  // ...
}, {
  modelname: 'user',
  tablename: 'users',
  sequelize,
});

字段

class mymodel extends model {}
mymodel.init({
  userid: {
    type: datatypes.integer,
    field: 'user_id'
  }
}, { sequelize });

主键

默认情况下,sequelize 会假设你的表具有 id 主键属性。

定义自己的主键:

class collection extends model {}
collection.init({
  uid: {
    type: datatypes.integer,
    primarykey: true,
    autoincrement: true // 自动转换为 postgresql 的 serial
  }
}, { sequelize });
class collection extends model {}
collection.init({
  uuid: {
    type: datatypes.uuid,
    primarykey: true
  }
}, { sequelize });

如果你的模型根本没有主键,则可以使用 model.removeattribute('id');

外键

// 1:1
organization.belongsto(user, { foreignkey: 'owner_id' });
user.hasone(organization, { foreignkey: 'owner_id' });
// 1:m
project.hasmany(task, { foreignkey: 'tasks_pk' });
task.belongsto(project, { foreignkey: 'tasks_pk' });
// n:m
user.belongstomany(role, { through: 'user_has_roles', foreignkey: 'user_role_user_id' });
role.belongstomany(user, { through: 'user_has_roles', foreignkey: 'roles_identifier' });

查看笔记

扫码一下
查看教程更方便
网站地图