【发布时间】:2020-01-04 05:21:09
【问题描述】:
我有一个 sequelize 表,其中没有当前主键作为 ID。我目前不确定为什么 id 主键没有呈现。我尝试强制 id 为主键和自动增量。
有谁知道我可以如何解决这个问题。
这是我当前的表格的样子:
colabdesk=# \d users;
Table "public.users"
Column | Type | Collation | Nullable | Default
------------+--------------------------+-----------+----------+---------
id | integer | | not null |
username | character varying(255) | | |
password | character varying(255) | | |
email | character varying(255) | | |
first_name | character varying(255) | | |
last_name | character varying(255) | | |
DATE | timestamp with time zone | | not null |
Indexes:
"users_pkey" PRIMARY KEY, btree (id)
"users_email_key" UNIQUE CONSTRAINT, btree (email)
"users_username_key" UNIQUE CONSTRAINT, btree (username)
Referenced by:
TABLE "details" CONSTRAINT "details_userId_fkey" FOREIGN KEY ("userId") REFERENCES users(id) ON UPDATE CASCADE ON DELETE SET NULL
TABLE "profiles" CONSTRAINT "profiles_userId_fkey" FOREIGN KEY ("userId") REFERENCES users(id) ON UPDATE CASCADE ON DELETE SET NULL
colabdesk=#
这就是我的 sequlize 表设计的样子:
const seq = require('sequelize');
const { postgres } = require('../index');
const permissions = [['Admin', 'Staff', 'User']];
const User = postgres.define(
"user",
{
username: {type: seq.STRING, unique: true, require: true,
validate: {isAlphanumeric: true, len: [8,16]}
},
password: {type: seq.STRING, require: true,
validate: {len: [8, 18]}
},
email: {type: seq.STRING, unique: true, require: true,
validate: {isEmail: true}
},
first_name: {type: seq.STRING, require: true,
validate: {isAlpha: true}
},
last_name: {type: seq.STRING, require: true,
validate: {isAlpha: true,}
},
permission: {type: seq.STRING, require: true,
validate: {isAlpha: true, isIn: permissions}
},
renter: {type: seq.BOOLEAN, require: true, defaultValue: 0,
validate: {isIn: [['0', '1']], isInt: true}
},
rentee: {type: seq.BOOLEAN, require: true, defaultValue: 0,
validate: {isIn: [['0', '1']], isInt: true}
},
},
{
createdAt: seq.DATE,
updatedAt: seq.DATE,
}
);
postgres.sync()
.then(() => {
console.log("User table is connected and synced")
})
.catch((err) => {
console.log("Error syncing the User table: " + JSON.stringify(err))
})
module.exports.User = User;
有谁知道如何解决这个问题
更新
这是请求的样子:
{
"username": "omarjandali",
"password": "password",
"email": "omar@admin.com",
"first_name": "omar",
"last_name": "jandali",
"permission": "Admin",
"renter": "1",
"rentee": "0"
}
【问题讨论】:
标签: mysql postgresql escaping sequelize.js