我的想法是定义一个消息模型,它有'id'和'message'属性,'message'属性将是一个对象数组。
例如:[{from, to, msg, time}]
及其各自的值。
这是我如何定义模型的:
import { DataTypes } from 'sequelize';
import sequelize from '../config/database.js';
const MessageSchema = sequelize.define('messages', {
id: {
type: DataTypes.INTEGER,
autoIncrement: true,
primaryKey: true
},
message: {
type: DataTypes.ARRAY(DataTypes.JSONB)
}, {
freezeTableName: true
});
export default MessageSchema;
当我运行应用程序时,我得到了这个:column "message" cannot be cast automatically to type jsonb[]
我该怎么解决?
1条答案
按热度按时间r55awzrz1#
您遇到的错误告诉我们,您正在使用的pgSQL数据库无法自动将“message”列转换为JSONB数组类型。
一个可能的解决方案是通过使用“type”选项和“DataTypes.ARRAY”方法,将列类型显式定义为JSONB数组。
请尝试下面的代码。
我添加了“allowNull:false”以确保始终需要“message”列,以及“defaultValue:[]”将空数组设置为默认值。
我希望这个更新会对你有所帮助。