我有一个使用续集构建的postgres数据库。我有一个用户对象和一个配置文件对象。我希望有一个将用户与我在配置文件表中设置的外键链接的外键。
代码:
const seq = require('sequelize');
const { postgres } = require('../../index');
const { user } = require('./user');
// const { picture, backgroundImage } = require('./ProfileAttachments');
const profile = postgres.define(
"profile",
{
id: {
type: seq.INTEGER,
primaryKey: true,
autoIncrement: true
},
bio: {
type: seq.STRING,
null: true
},
facebook: {
type: seq.STRING,
null: true,
validate: {
isUrl: true,
}
},
twitter: {
type: seq.STRING,
null: true,
validate: {
isUrl: true,
}
},
website: {
type: seq.STRING,
null: true,
validate: {
isUrl: true,
}
},
},{
createdAt: seq.DATE,
updatedAt: seq.DATE,
},
postgres.sync()
.then(() => {
console.log("Profile table is synced")
})
.catch((error) => {
console.log("caught error with Profile: " + error)
})
);
// picture.addTo(profile);
// backgroundImage.addTo(profile);
user.hasOne(profile)
module.exports.profile = profile
这是我的桌子
splitter=# \d+ profiles;
id | integer | | not null | nextval('profiles_id_seq'::regclass) | plain | |
bio | character varying(255) | | | | extended | |
facebook | character varying(255) | | | | extended | |
twitter | character varying(255) | | | | extended | |
website | character varying(255) | | | | extended | |
DATE | timestamp with time zone | | not null | | plain | |
splitter=#
我尝试同时做user.hasOne(profile)
和profile.hasOne(user)
。
我第一次同步数据库时确实出现了外键。我改变了一些东西然后消失了,我不确定那是怎么发生的。有人可以帮忙吗?我很确定这是我看不到的小东西。