在 sequelize.js 中设置列顺序
Set column order in sequelize.js
我想在时间戳之前放置 user_id
列,我该如何告诉 sequelize.define
?
sequelize.define('UserPassport', {
method: DataType.STRING,
token: DataType.STRING,
social_id: DataType.STRING
}, {
classMethods: {
associate: function(models) {
UserPassport.belongsTo(models.User);
}
},
tableName: 'user_passports',
underscored: true
});
table 的架构:
CREATE TABLE `user_passports` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`method` varchar(255) DEFAULT NULL,
`token` varchar(255) DEFAULT NULL,
`social_id` varchar(255) DEFAULT NULL,
`created_at` datetime NOT NULL,
`updated_at` datetime NOT NULL,
`user_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `user_id` (`user_id`),
CONSTRAINT `user_passports_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
P.S: 是否可以从 method
和 social_id
中创建一个复合键,以便它们都可以组成 PK 而不是 id 字段。
您需要做的就是将它添加到 define
阶段中您想要的任何位置,如下所示:
var user_passport = sequelize.define('user_passport', {
method: DataTypes.STRING,
token: DataTypes.STRING,
social_id: DataTypes.STRING,
user_id: DataTypes.INTEGER
}, {
classMethods: {
associate: function(models) {
user_passport.belongsTo(models.User, { foreignKey: 'user_id' });
}
},
tableName: 'user_passports',
underscored: true
});
并在 associate
中附加对字段的引用:
user_passport.belongsTo(models.settings, { foreignKey: 'user_id' });
我想在时间戳之前放置 user_id
列,我该如何告诉 sequelize.define
?
sequelize.define('UserPassport', {
method: DataType.STRING,
token: DataType.STRING,
social_id: DataType.STRING
}, {
classMethods: {
associate: function(models) {
UserPassport.belongsTo(models.User);
}
},
tableName: 'user_passports',
underscored: true
});
table 的架构:
CREATE TABLE `user_passports` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`method` varchar(255) DEFAULT NULL,
`token` varchar(255) DEFAULT NULL,
`social_id` varchar(255) DEFAULT NULL,
`created_at` datetime NOT NULL,
`updated_at` datetime NOT NULL,
`user_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `user_id` (`user_id`),
CONSTRAINT `user_passports_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
P.S: 是否可以从 method
和 social_id
中创建一个复合键,以便它们都可以组成 PK 而不是 id 字段。
您需要做的就是将它添加到 define
阶段中您想要的任何位置,如下所示:
var user_passport = sequelize.define('user_passport', {
method: DataTypes.STRING,
token: DataTypes.STRING,
social_id: DataTypes.STRING,
user_id: DataTypes.INTEGER
}, {
classMethods: {
associate: function(models) {
user_passport.belongsTo(models.User, { foreignKey: 'user_id' });
}
},
tableName: 'user_passports',
underscored: true
});
并在 associate
中附加对字段的引用:
user_passport.belongsTo(models.settings, { foreignKey: 'user_id' });