根据文档, sequelize.sync()没有{force: true}或{alter:true}应该忽略已经存在的表并仅创建/同步新表。但是,至少有两种用例未完全忽略现有表并且会引入错误。
我的设置:
sequelize.sync()用作预迁移步骤来创建架构中不存在的表sequelize.migrate()用于更改任何现有表。注意:Sequelize 模型被视为反映数据库模式的单一事实来源。它们始终会更新以反映数据库中存在的所有索引/字段。
重现步骤
第 1 步:创建具有两个字段和 的User模型。有一个唯一的索引nameemailEmail
const users = sequelizeClient.define('users', {
name: {
type: DataTypes.STRING,
allowNull: false,
},
email: {
type: DataTypes.STRING,
allowNull: false,
},
}, {
indexes: [
{
unique: true,
fields: ['email'],
},
],
});
Run Code Online (Sandbox Code Playgroud)
没有迁移,因此预计将使用sequelize.sync(). 一切都按预期进行。以下是生成的 SQL 脚本。
Executing (default): CREATE TABLE IF NOT EXISTS "users" ("id" SERIAL , "name" VARCHAR(255) NOT NULL, "email" …Run Code Online (Sandbox Code Playgroud) 我需要实现一个应该能够实现的身份提供者服务(使用node.js)。
如果一切有效,则使用签名的 XML 响应示例进行响应
node.js 中是否有可以处理 SAML 协议的 IdP 端的工具。我熟悉samlify、saml2、Passport-saml,它们似乎都处理协议的服务提供商端。
如果这里提到的软件包可以满足我的需求,您能否指定它们到底如何处理这个问题。任何其他方向和/或提示可能会有帮助。
谢谢