【发布时间】:2019-09-23 03:49:37
【问题描述】:
为什么我使用 SQLite 从我的更新解析器获取更新的数据,而不是 postgress?如果这很重要,我也会将 Sequelize 用于 ORM。
关于 Apollo 和数据库的一般问题。基本上我有一个更新用户解析器,它更新用户的一些字段并返回用户。使用 SQLite 时,返回的数据是正确的更新用户。但是,当我切换到 postgres 时,数据总是落后 1 次更新?因此,当我最初在使用 postgres 时更新用户时,没有任何变化,但下次我更新它时,我会从上一次更新中获取数据,依此类推。我只是很困惑,因为我没有更改任何代码,只是更改了它使用的数据库。 Apollo 对不同数据库的行为是否不同,或者 postgress 与 sqlite 的行为是否不同?
// model
"use strict";
module.exports = (sequelize, DataTypes) => {
const User = sequelize.define(
"User",
{
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true
},
firstName: DataTypes.STRING,
lastName: DataTypes.STRING,
userType: DataTypes.STRING,
},
);
User.associate = function(models) {
};
// typeDef
type User {
id: ID!
firstName: String
lastName: String
userType: String
createdAt: String
updatedAt: String
}
// resolver
async updateUser(
root,
{
id,
firstName,
lastName,
userType,
},
{ models }
) {
models.User.update(
{
firstName: firstName,
lastName: lastName,
userType: userType,
},
{
where: { id: id }
}
);
return models.User.findByPk(id);
},
//query
mutation {
updateEmployee(
id: 1
firstName: "testName"
lastName: "testUpdate"
employeeID: "12345"
){
id
firstName
lastName
employeeID
createdAt
updatedAt
}
}
【问题讨论】:
标签: javascript postgresql apollo apollo-client apollo-server