Articles of sequelize cli

在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外键和连接表? 有没有关于如何做到这一点的权威指南?