有没有办法写一个像findAll一样的delete / deleteAll查询? 例如,我想要做这样的事情(假设MyModel是一个Sequelize模型…): MyModel.deleteAll({ where: ['some_field != ?', something] }) .on('success', function() { /* … */ });
我有一个名为User的模型,但每当我试图保存在数据库中时,Sequelize都会查找表USERS。 有谁知道如何设置Sequelize使用奇异的表名? 谢谢。
我想查看发送到PostgreSQL服务器的SQL命令,因为我需要检查它们是否正确。 特别是,我对表创build命令感兴趣。 例如,ActiveRecord(Ruby)将其SQL语句打印到标准输出。 这是可能的与Node.js / ActionHero.js和Sequelize.js以及?
我在“字段列表”中收到未知列“userDetails.createdAt”当尝试使用关联进行提取时。 使用findAll无关联工作正常。 我的代码如下: var userDetails = sequelize.define('userDetails', { userId :Sequelize.INTEGER, firstName : Sequelize.STRING, lastName : Sequelize.STRING, birthday : Sequelize.DATE }); var user = sequelize.define('user', { email: Sequelize.STRING, password: Sequelize.STRING }); user.hasOne(userDetails, {foreignKey: 'userId'}); user.findAll({include: [userDetails] }).success(function(user) { console.log(user) });
我使用NodeJS创build了一个RESTful API,express,express-resource和Sequelize用于pipe理存储在MySQL数据库中的数据集。 我试图找出如何使用Sequelize正确更新logging。 我创build一个模型: module.exports = function (sequelize, DataTypes) { return sequelize.define('Locale', { id: { type: DataTypes.INTEGER, autoIncrement: true, primaryKey: true }, locale: { type: DataTypes.STRING, allowNull: false, unique: true, validate: { len: 2 } }, visible: { type: DataTypes.BOOLEAN, defaultValue: 1 } }) } 然后,在我的资源控制器中,我定义了一个更新操作。 在这里,我希望能够更新id匹配req.paramsvariables的logging。 首先我build立一个模型,然后使用updateAttributes方法来更新logging。 const Sequelize = require('sequelize') const { dbconfig […]
我有一个function来检索用户的configuration文件。 app.get('/api/user/profile', function (request, response) { // Create the default error container var error = new Error(); var User = db.User; User.find({ where: { emailAddress: request.user.username} }).then(function(user) { if(!user) { error.status = 500; error.message = "ERROR_INVALID_USER"; error.code = 301; return next(error); } // Build the profile from the user object profile = { "firstName": user.firstName, […]
我已经接近准备推出我的项目了。 我有大的计划,推出之后,数据库结构将发生变化 – 现有表中的新列以及新表,以及与现有和新模型的新关联。 我还没有触及Sequelize中的迁移,因为我只有testing数据,我不介意每次数据库更改时清除。 为此,目前我正在运行sync force: true当我的应用程序启动时,如果我已经改变了模型定义,则为sync force: true 。 这将删除所有的表,并从头开始。 我可以省略force选项,让它只创build新表。 但是,如果现有的改变,这是没有用的。 所以一旦我join迁移,事情是如何工作的? 显然,我不希望现有的表格(其中的数据)被清除,所以sync force: true是不可能的。 在其他应用程序中,我已经帮助开发(Laravel和其他框架)作为应用程序部署过程的一部分,我们运行migrate命令来运行任何未决的迁移。 但是在这些应用程序中,第一次迁移有一个骨架数据库,数据库处于开发初期的一段时间 – 第一个alpha版本或其他。 因此,即使是晚会的应用程序的一个实例,也可以通过按顺序运行所有的迁移来一口气加速。 我如何在Sequelize中产生这样的“第一次迁移”? 如果我没有,那么应用程序的新实例将不会有骨架数据库来运行迁移,或者它将在开始时运行同步,并将使数据库处于新状态新的表格等等,但是当它试图运行迁移时,它们是没有意义的,因为它们是用原始数据库和每一个连续的迭代来logging的。 我的思考过程:在每个阶段,初始数据库加上每个迁移顺序应该等于(加或减数据)在sync force: true运行时生成的数据库。 这是因为代码中的模型描述描述了数据库结构。 所以也许如果没有迁移表,我们只运行同步并将所有的迁移标记为已完成,即使它们没有运行。 这是我需要做什么(如何?),或者是Sequelize应该自己做这个,还是我咆哮错误的树? 如果我在正确的领域,肯定应该有一个很好的方式来自动生成大部分的迁移,给定旧模型(通过提交散列?甚至每个迁移可以绑定到一个提交?我承认我在想在一个不可移植的以git为中心的世界中)和新模型。 它可以对结构进行区分,并生成将数据库从旧到新的数据转换后所需的命令,然后开发人员可以进行必要的调整(删除/转换特定的数据等)。 当我用–init命令运行sequelize二进制文件时,它给了我一个空的迁移目录。 当我然后运行sequelize –migrate它使我没有任何内容的SequelizeMeta表,没有其他表。 显然不是,因为该二进制文件不知道如何引导我的应用程序并加载模型。 我肯定错过了什么。 TLDR:我如何设置我的应用程序及其迁移,以便实时应用程序的各种实例可以更新,以及没有传统启动数据库的全新应用程序?
我正在寻找一个使用序列化ORM的示例nodejs应用程序。 我主要担心的是,如果由于require()依赖性循环,这些模型之间存在复杂的关系,那么在单独的js文件中定义模型几乎是不可能的。 也许人们把所有的模型定义在一个非常长的文件中? 我主要感兴趣的是如何定义模型,并通过应用程序使用。 我想有一些validation,我正在做我自己的事情是“好”的方式。