Articles of sequelize cli

我使用Sequelize的数据库模型不做迁移

我有两个模型: user.js的 'use strict' module.exports = function(sequelize, DataTypes) { var User = sequelize.define('User', { gid: { type: DataTypes.INTEGER, allowNull: false, primaryKey: true, autoIncrement: true }, email: { type: DataTypes.STRING, allowNull: false }, password: { type: DataTypes.STRING, allowNull: false }, newsletters: { type: 'NUMERIC', allowNull: false, defaultValue: '1' }, status: { type: 'NUMERIC', allowNull: false, defaultValue: […]

如何添加,删除Sequelize CLI中的新列

我刚开始使用Sequelize和Sequelize CLI 由于这是一个开发时间,因此频繁地添加和删除列。 什么是最好的方法添加一个新的列到现有的模型? 例如,我想要一个新的专栏“ 完成 ”到Todo模型。 我将这个列添加到models / todo.js。 下一步是什么? 我试过sequelize db:migrate 不工作: “没有执行迁移,数据库模式已经是最新的。”

在续集种子中findlogging

我一直在试图为我的项目写一些种子,但是我遇到了一些麻烦。 我与我的users和roles表有着many-to-many关系。 所以,当我播种数据库时,我需要添加一个正确的ID到我的连接表的logging。 为了做到这一点,我需要find用户通过email和angular色的name并得到ids ,这就是问题所在。 我无法在续集网站上find任何好的文档。 我正在使用sequelize-cli来播种和迁移东西。 我作为一个参数queryInterface ,但我找不到任何示例或提到什么事情可以实际上做。 只是一些简单的例子,让我通过迁移(以某种方式),我能在谷歌find。 我已经通过使用“脏伎俩”来解决这个问题了。 // user_seeds.js up: function (queryInterface, Sequelize) { return queryInterface.bulkInsert(table, [{ id: 1, name: 'John doe', email: 'john@doe.com', created_at, updated_at }], {}); // roles_seeds.js up: function (queryInterface, Sequelize) { return queryInterface.bulkInsert(table, [{ id: 1, name: 'admin', created_at, updated_at }, { id: 2, name: 'user', created_at, […]

npm运行sequelize无法parsing

我正在尝试使用序列化迁移: npm install –save sequelize-cli 然后我把它添加到package.json中: "scripts": { "sequelize": "sequelize" }, 然后我尝试: npm run sequelize help:init 我得到这个错误: Unable to resolve sequelize package in C:\Projectx 该图书馆可以在该项目中find: node_modules/.bin/sequelize 更新 : 通过安装sequelize解决了它: npm install –save sequelize

Sequelize:根据请求在运行时连接到数据库

我正在做一个node.js应用程序,我需要连接到多个数据库。 其中一个数据库是中央数据库,其中包含所有人共同的信息。 然后有根据国家储存数据的国家级数据库。 我在应用程序中使用续集ORM。 数据库是postgresql。 框架是明确的。 问题是我想根据请求使用哪个数据库来决定运行时间,模型应该自动连接到适当的数据库。 我已经看到这个问题,但没有发现它有帮助。 我也检查了另一个论坛,但没有发现任何东西。

在Node / Express中重新加载 – “没有这样的表:main.User”错误

我试图用Sequelize构build一个简单的Node / Express应用程序,但是当我尝试在关系数据库中创build新logging时,出现错误Unhandled rejection SequelizeDatabaseError: SQLITE_ERROR: no such table: main.User 。 基本上,我在Users表中创build一个用户,然后尝试在Addresses表中创build一个相关的Addresses – 用户成功创build,但它创build地址时出现此错误…在哪里得到main前缀从表名? (完整的错误读数在下面)… 首先,这里是我的节目的简介… 我的Sequelize版本是Sequelize [Node: 6.8.1, CLI: 2.4.0, ORM: 3.29.0] ,我使用Sequelize CLI命令sequelize init来设置我的项目的这一部分。 我正在使用SQLite3进行本地开发,并在config/config.json我有开发数据库定义为 "development": { "storage": "dev.sqlite", "dialect": "sqlite" } 我的用户迁移: 'use strict'; module.exports = { up: function(queryInterface, Sequelize) { return queryInterface.createTable('Users', { id: { allowNull: false, autoIncrement: true, primaryKey: true, […]

如何find续集迁移文件?

通过sequilize-cli文件结构有很多关于sequelize迁移文件访问的文章。 但是,如果我不使用sequilize-cli,那么如何find迁移文件?

SequelizeJS迁移:将多个外键添加到相同的模型?

使用sequelize cli实用工具的迁移function时,可以通过添加新列来创build新的外键。 但是,我试图创build多个外键到同一个模型时遇到了一个错误。 通过运行sequelize db:migrate生成的外键名称不是独特的。 数据库引擎要求为所有外键分配一个唯一的名称,但SequelizeJS似乎初始化所有外键的名称为: // Excerpt from sequelize/lib/dialects/mysql/query-generator.js // Line 195 {fkName: this.quoteIdentifier(attrName + '_foreign_idx')} 如果索引号idx不正确增加,这当然会产生相同的密钥。 在Sequelize库的某个地方,在使用db.sync()初始化模型时, _foreign_idx的idx部分必须被一个实际的数值replace,但是我还没有能够确定在哪里。 我也validation了sequelize在使用db.sync()通过检查另一个数据库中的外键确实增加了索引值。 在该数据库中,外键被命名为_ibfk_1 , _ibfk_2 ,.., _ibfk_n 有没有人遇到过外键生成器产生相同名称的问题? 有没有人有一个build议,如何可以避免/缓解使用Sequelize迁移? 我使用MySQL作为数据库引擎,但外键名称生成器遵循相同的程序,例如。 postgre,以及我能够解释的续集源代码。 例 以下迁移将创build三个模型,并使用来自sequelize cli的函数addColumn函数在它们之间创build关系。 脚本模拟教练和队伍由赞助商赞助的场景。 在这个模型中,我们希望在教练和球队模型中都参考赞助商id。 不幸的是,这将创build两个名为sponsorId_foreign_idx外键(一个在教练上,另一个在团队模型上),因此外键不会有唯一的名字。 但是,如果idx被一些递增的值改变,这将被避免。 var Promise = require('bluebird'); module.exports = { up: function (queryInterface, Sequelize) { return Promise .join( queryInterface .createTable('sponsor', { […]

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'; […]

如何用外键创build带有sequelize或sequelize-cli的连接表

我正在为两种types创build模型和迁移,玩家和团队有许多关系。 我使用sequelize模型:创build,但不看如何指定外键或连接表。 sequelize model:create –name Player –attributes "name:string" sequelize model:create –name Team –attributes "name:string" 模型创build后,我添加关联。 玩家: Player.belongsToMany(models.Team, { through: 'PlayerTeam', foreignKey: 'playerId', otherKey: 'teamId' }); 团队: Team.belongsToMany(models.Player, { through: 'PlayerTeam', foreignKey: 'teamId', otherKey: 'playerId' }); 然后迁移与运行 sequelize db:migrate 有玩家和团队的表,但数据库中没有连接表(也不是外键)。 如何创build外键和连接表? 有没有关于如何做到这一点的权威指南?