为什么 Sequelize 复数 'media' 到 medium
Why does Sequelize pluralize 'media' to medium
我遇到了一个非常大的问题,sequelize 试图让我最好地猜测它认为我的 table 名字是什么。
我有 3 个 table。属性、媒体和连接点 table PropertyMedia
出于某种原因,当我使用 sequelize 进行连接查询时,出现错误
error: column Properties->PropertyMedia.medium_id does not exist
我进行了全局搜索,以确保我在任何地方都没有找到“媒介”这个词,而且我也没有
let Media = sequelize.define('Media', {
url: DataTypes.STRING,
isVideo: DataTypes.BOOLEAN
}, { freezeTableName: true, tableName: 'media' });
let PropertyMedia = sequelize.define('PropertyMedia', {
propertyId: DataTypes.INTEGER,
mediaId: DataTypes.INTEGER
}, { freezeTableName: true, tableName: 'property_media' });
它不会复数到“中”,它单数到“中”。
那是因为 "media" is the plural of "medium" 并且默认情况下 table 名称使用复数,引用使用单数,就像你有 user_id
(单数)引用 users
(复数),所以这里的 medium_id
(不是 media_id
)应该引用 media
.
的确,现在的英语 another (usually) uncountable noun "media" 就是从那个(可能 1 人们忘记它确实起源于复数形式的拉丁词 medium 而来的),但那是一个特殊情况 Sequelize 确实不知道,而且它无法辨别您指的是两个名词中的哪一个。
因此,Sequelize ways to override the singular/plural forms。
1:我不是词源学家所以请对这个持保留态度。
我遇到了一个非常大的问题,sequelize 试图让我最好地猜测它认为我的 table 名字是什么。
我有 3 个 table。属性、媒体和连接点 table PropertyMedia
出于某种原因,当我使用 sequelize 进行连接查询时,出现错误
error: column Properties->PropertyMedia.medium_id does not exist
我进行了全局搜索,以确保我在任何地方都没有找到“媒介”这个词,而且我也没有
let Media = sequelize.define('Media', {
url: DataTypes.STRING,
isVideo: DataTypes.BOOLEAN
}, { freezeTableName: true, tableName: 'media' });
let PropertyMedia = sequelize.define('PropertyMedia', {
propertyId: DataTypes.INTEGER,
mediaId: DataTypes.INTEGER
}, { freezeTableName: true, tableName: 'property_media' });
它不会复数到“中”,它单数到“中”。
那是因为 "media" is the plural of "medium" 并且默认情况下 table 名称使用复数,引用使用单数,就像你有 user_id
(单数)引用 users
(复数),所以这里的 medium_id
(不是 media_id
)应该引用 media
.
的确,现在的英语 another (usually) uncountable noun "media" 就是从那个(可能 1 人们忘记它确实起源于复数形式的拉丁词 medium 而来的),但那是一个特殊情况 Sequelize 确实不知道,而且它无法辨别您指的是两个名词中的哪一个。
因此,Sequelize ways to override the singular/plural forms。
1:我不是词源学家所以请对这个持保留态度。