我的 Store.ts 文件:
import {DataTypes, Model, ModelAttributes} from "sequelize";
export default class Store extends Model {
declare id: number
declare name: string
declare phone: string
}
export const StoreFields: ModelAttributes = {
id: {
type: DataTypes.INTEGER,
autoIncrement: true,
primaryKey: true,
},
name: {
type: DataTypes.CHAR,
allowNull: false,
},
phone: {
type: DataTypes.CHAR,
}
}
我的 Item.ts 文件:
import {DataTypes, Model, ModelAttributes} from "sequelize";
export default class Item extends Model {
declare id: number
declare name: string
declare price: number
}
export const ItemFields: ModelAttributes = {
id: {
type: DataTypes.INTEGER,
autoIncrement: true,
primaryKey: true,
},
name: {
type: DataTypes.CHAR,
allowNull: false,
},
price: {
type: DataTypes.INTEGER,
allowNull: false,
},
storeid: {
type: DataTypes.INTEGER,
allowNull: false,
references: {
model: 'Store',
key: 'id',
},
onDelete: 'CASCADE'
}
}
我正在像这样初始化所有这些模型:
import {DataTypes, Model, ModelAttributes, ModelStatic, Sequelize} from "sequelize";
import Item, {ItemFields} from "./models/Item.js";
import Store, {StoreFields} from "./models/Store.js";
export const sequelize = new Sequelize(process.env.PGURL, {dialect: "postgres"});
void Item.init(ItemFields, {sequelize, timestamps: false, tableName: 'item', modelName: 'item'}).sync()
void Store.init(StoreFields, {sequelize, timestamps: false, tableName: 'store', modelName: 'store'}).sync()
Store.hasMany(Item, {
foreignKey: "storeid",
})
Item.belongsTo(Store, {
foreignKey: "storeid",
})
问题是,当我运行
Store.create({name: "test", phone: "testphone"})
时,续集保存此模型名称并在末尾添加一堆空格
抱歉,我无法在 md 中写入空格,所以我从 neon.tech 仪表板查询中固定了图像
请注意,response.data.rows 中没有结束引号
我应该使用VARCHAR(DataTypes.STRING),而不是CHAR,CHAR附加空格以确保字符串长度为32767