Sequelize 在 DataTypes.CHAR 末尾添加一堆空格

问题描述 投票:0回答:1

我的 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 中没有结束引号

typescript postgresql sequelize.js
1个回答
0
投票

我应该使用VARCHAR(DataTypes.STRING),而不是CHAR,CHAR附加空格以确保字符串长度为32767

© www.soinside.com 2019 - 2024. All rights reserved.