Articles of sequelize.js

Sequelize.js中的前缀支持

使用Sequelize.js时,有什么方法可以支持前缀表名? 想象一下,我想build立一个博客平台,以便每个注册用户可以得到他自己的博客和URL(子域)。 现在,如果打开userxxx.mydomain.com他应该从名为userxxx_TABLENAME表中获取内容,同时打开difuser.mydomain.com将从difuser_TABLENAME获取数据等。 我尝试添加前缀到模型名称,例如: sequelize.define('userxxx_Post' …) ,它可以工作,但在多对多关系(表名成为userxxx_Postuserxxx_Comment )时创build混乱。 有没有更好的办法? (我并不是完全在node.js上构build博客平台,但解决这个问题的方法是一样的)

节点的Sequelize不允许在主键上自动生成UUID *除非*字段名称是'id'

这个Sequelize提交似乎证实命名主键'id'使其变得特别。 并根据我的testing以下代码片段,将字段名更改为'ID'以外的东西就足够了没有默认值被设置,因此,插入失败。 id: { type: DataTypes.UUID, primaryKey: true, defaultValue: DataTypes.UUIDV4, allowNull: false } 那么有没有办法保持命名主键字段的灵活性,并将其默认为UUID?

续集复合外键

我有一个数据库与下表: CREATE TABLE IF NOT EXISTS `app_user` ( `user_id` INT NOT NULL, `user_name` VARCHAR(45) NOT NULL, PRIMARY KEY (`user_id`)) ENGINE = InnoDB; CREATE TABLE IF NOT EXISTS `user_folder` ( `user_id` INT NOT NULL, `document_id` INT NOT NULL, PRIMARY KEY (`user_id`, `document_id`), CONSTRAINT `fk_user_document_user` FOREIGN KEY (`user_id`) REFERENCES `zinc`.`app_user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE) […]

从没有元信息序列化的查询中获取结果集

我是Node.js / Sequelize.js的新手。 我有以下一段代码查询: var agent_list = models.agent.findAll({ subQuery: false, where: qry_filter, attributes: select_attributes, include:include_models, group: ['agent_id'], order: agent_data.sort || appConfig.DEFAULT_AGENT_SORT, limit: agent_data.num_results || appConfig.DEFAULT_RESPONSE_SIZE }) .then(function(agent_list){ console.log(agent_list); }); 语句“console.log(agent_list)”打印从数据库检索的数据加上元信息,如选项:{…},modelOptions:{…}等dataValues对象包含我想要的数据。 结果集是嵌套的js对象,每个对象具有相同的结构,因此循环遍历结果集并仅获取dataValues将非常困难。 我有使用PHP的经验,像这样的$ db – > Execute(“$ qry”)会返回结果集元和获取行$ db – >执行(“$ qry”) – > getRows()可以使用。 如何实现这个续集?

Sequelize-CLI Seeders – 无法读取未定义的属性

我一直在用db:seed:all挣扎db:seed:all的一个多小时,现在慢慢地,我对此失去了信心。 我有一个简单的模型: 'use strict'; module.exports = function (sequelize, DataTypes) { var Car = sequelize.define('Cars', { name: DataTypes.STRING, type: DataTypes.INTEGER, models: DataTypes.INTEGER }, { classMethods: { associate: function (models) { // associations can be defined here } } }); return Car; }; 这是在迁移,并使用sequelize db:migrate到数据库,它工作正常。 接下来,我想插入 – 通过种子文件 – 2辆车。 所以我运行了命令sequelize seed:create –name insertCars并添加了bulkInsert : 'use strict'; […]

如何在mysql数据库中使用FIND_IN_SET

如何在集合ORM中使用FIND_IN_SET或任何等价的集合。

续集join非主键

我有两张桌子我需要关联。 表A有一个表B。 我可以在TableA模型中做到这一点: TableA.hasOne( models.TableB, { as: 'TableB', foreignKey: 'someID' } ); 看着SQL,它试图joinTableA.ID和TableB.someID。 我真正想要的是joinTableA.someNonPrimaryKey和TableB.someID。 我怎么能说sequelizejoin一些NonPrimaryKey?

打破单独的文件夹中的后续模型

我真正的问题是:是否有可能与单独的文件夹中的模型sequelize工作? 我这样问,因为我试图在我的应用程序中使用模块化结构,为了实现我需要的模型,控制器和path在同一个文件夹中,这就是我的意思: ├── node_modules ├── src │ ├── client │ │ └── … //Frontend things managed by angular (like views, etc…) │ └── server | ├── components | | ├── db | | | ├── migrations | | | | ├── users.js | | | | └── … | | | ├── seeders | | […]

MySQLjoin,ORDER BY RAND()然后sortingASC(最好使用Sequelize)

我想帮助这个MySQL查询。 理想情况下,我会使用node.js Sequelize ORM生成它。 这些表格是: Questions: id, question Answers: id, question_id, answer 我的续集代码是: models.questions.findAll({ where: { id: { $notIn: not_in } }, order: [['id','ASC'], [models.answers, 'id', 'ASC']], attributes: ['id', 'question'], include: [{ model: models.answers, attributes: ['id', 'question_id', 'answer'], }] }) 将not_in设置为-1 ,Sequelize会生成以下查询: SELECT `questions`.`id`, `questions`.`question`, `answers`.`id` AS `answers.id`, `answers`.`question_id` AS `answers.question_id`, `answers`.`answer` AS `answers.answer` FROM […]

续集迁移失败(postgres)

我正在尝试使用postgresql与我的节点应用程序使用sequelize。 但是我不能使它工作。 当我运行sequelize -m我得到这个输出: Loaded configuration file "config/config.json". Using environment "development". Running migrations… 20130916100313-create-table-usuarios.js Completed in 21ms events.js:74 throw TypeError('Uncaught, unspecified "error" event.'); ^ TypeError: Uncaught, unspecified "error" event. at TypeError (<anonymous>) at EventEmitter.emit (events.js:74:15) at null.<anonymous> (/home/alejo/workspace/cloudlogger/api/node_modules/sequelize/lib/migrator.js:95:44) at EventEmitter.emit (events.js:98:17) at module.exports.finish (/home/alejo/workspace/cloudlogger/api/node_modules/sequelize/lib/query-chainer.js:138:30) at exec (/home/alejo/workspace/cloudlogger/api/node_modules/sequelize/lib/query-chainer.js:92:16) at onError (/home/alejo/workspace/cloudlogger/api/node_modules/sequelize/lib/query-chainer.js:72:11) at EventEmitter.emit (events.js:95:17) at /home/alejo/workspace/cloudlogger/api/node_modules/sequelize/lib/migration.js:65:19 […]