问题标签 [sequelize-cli]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - What is the command to generate migration script from existing sequelize models?
I've created models using the following command.
$ node_modules/.bin/sequelize model:create --name XYZ --attributes "....."
But by mistake I deleted the folder containing migration script. Now I want to generate this script again.
I tried using sequelize migration:create
, but it generated any empty file.
Please Help.
sequelize.js - Sequelize 迁移中的承诺链 - 关系不存在
这个简单的测试代码:
返回以下错误:
现在,我明白到执行第二个承诺(关于更改表)时,表还没有创建。
不可能是因为迁移中的所有查询都是同时执行的,因为我有这个测试迁移:
它工作正常。
那么,任何人都可以解释为什么第一个不起作用以及如何实现它,以便可以从单个迁移中执行表的创建+添加 PK?
node.js - 关联类方法中的现有字段 sequelize
我有从 CLI 生成的这两个 Sequelize 模型
和
我需要将 Departure 和 Destination 与 location 字段的 Id 相关联。我不能只使用 has many/belongsto,因为它会创建另一个字段。
我试过做tickets_sold.departure.belongsTo(models.locations,{ onDelete:"CASCADE", foreignKey:{allowNull:false } }) 但没有用。
如何将这两个字段与位置表相关联?
mysql - 引导 Sequelize 模式的“正确”方法是什么?
在开始使用 sequelize 时,我只是用来force:true
保持数据库为开发工作,但现在我正在过渡到测试/生产,这显然不再是一个好的选择。
我在我的代码中定义了我的模式,如下所示:
将其转换为数据库初始化工作流程的“正确”方法是什么?特别是,我认为让这发生在“init”迁移中是有意义的,这样未来的迁移和代码更改就可以解决它,这样在未来的任何时候我都可以运行迁移堆栈到获得完全最新的架构。
编辑:我已经考虑过并且可能会起作用的事情,但似乎不是足够“优雅”的解决方案。
- 使用生成的 SQL启动新数据库
force:true
并捕获生成的 SQL 以创建可以在新数据库上运行的“setup.sql”。 - 用“迁移符号”重写我的整个模式,这在它所描述的内容上是相同的,但在语法上却令人讨厌地不同。
mysql - 如何在包含的模型 Sequelize 中添加条件?
我试图在包含模型的列上设置一个自定义条件,使其等于父模型列的值,但它在 sequelize 3.8.7 模块中没有按预期工作。下面是我试过的代码
但是当我检查执行的查询条件不包含在 mysqlORM.sequelize.col 中时。它像这样执行 LEFT OUTER JOIN
请帮助,以便我可以对包含模型的列值设置条件。
mysql - 续集多对多关系:无法读取未定义的属性“拆分”
我正在尝试使用 Sequelize + nodeJs 使用现有的 MySQL 数据库创建多对多关系:
下面是我的表: - “usr”表:usr_id(PK) - 中间“usr_role”:usr_id,role_id - “role”表:role_id
这是我的模型“用户”模型:
“角色”模型
这是我的 index.js
第 50 行引用 db[modelName].associate(db),这会导致错误。
有人可以指导我我做错了什么。我是否需要手动创建中间模型“UserRole”。非常感激你的帮助。谢谢。
meteor - 流星、阿波罗和续集:找不到模块“config.json”
最近在 apollo 和 sequelize 旁边添加了新安装的流星,创建了一个 .sequelizerc 文件,该文件按要求工作,但每当我运行流星时,它都会失败:错误:找不到模块'/lib/database/mysql/models/..config.json '
应用结构:
.sequelizerc 文件
/lib/database/models/index.js 文件
包.json
sequelize.js - Sequelize-CLI 将列添加到现有模型
我一直在阅读大量的 sequelize-cli 文档,但似乎无法弄清楚如何将列添加到我已有的现有模型中。我有一个名为的模型,models/team.js
并想用 向role_name
模型添加一个名为的列sequelize model:create --name team --attributes role_name:string
,但我收到一条消息,要覆盖而不是修改:
我不想覆盖让我认为这不是正确使用命令的文件。这也让我想知道这是否无法从 cli 中进行,并且必须在迁移文件级别进行调整。
sequelize.js - Sequelize CLI 迁移类方法更改
我正在尝试更新模型文件中具有多对多关系的表之间的关系。我目前在尝试使用关系必须是唯一的默认性质的命令时遇到错误。因此,我想进行简单的调整,将属性添加到我belongsToMany
的 with unique: false
,但我不确定在迁移文件中使用的正确格式。似乎没有queryInterface
关于更改命令的任何文档classMethod
。我什至需要迁移文件吗?
我想改变这个:
对此 ( unique: false
)
node.js - 如何在 Node 中使用 Sequelize 进行 SELF JOIN
我正在使用 sequelize-cli 进行迁移,并研究了不同的场景,但似乎没有关于如何自我加入的明确可靠答案。我想要一个名为 Friendships 的连接表,它连接用户和朋友(本质上只是用户)。
更具体地说,试图了解在这种情况下“通过”和“作为”之间的区别。
1)这是我的友谊表。被第二个协会绊倒了。我创建了两列,一列是 userId,一列是friendId。我希望能够将此表链接到 2 个用户,每个表中有一个用户,其中一列别名为“friendId”。
```
```
2)这是我的用户模型。同样,具体在关联对象中我不清楚的地方。这里的目标是能够调用 user.friends 并显示该用户朋友的所有实例。不确定我是否正确使用了“through”和“as”关键字。
```
```