Sequelize 中的迁移在我自己的文件夹结构中

问题描述 投票:0回答:3

我是

Sequelize
的新手,我当前的项目要求我在迁移中使用它。我熟悉迁移的内容和方式。 我来自
Django
背景,其中每个子应用程序在同一文件夹中都有模态、视图、api、url 和迁移。我喜欢这个结构,并希望在我的 Nodejs 应用程序中保持相同的结构。我正在尝试将一项功能放在一个地方。这对我来说更有意义。

我的结构

|---api
     |---user
     |    |--- api.js
     |    |--- utils.js
     |    |--- models.js
     |    |--- index.js
     |    |--- migrations
     |            |--- xxx123-migration.js
     |            |--- xxx1235-migration.js
     |---payment
          |--- api.js
          |--- utils.js
          |--- models.js
          |--- index.js
          |--- migrations
                  |--- xxx123-migration.js
                  |--- xxx1235-migration.js

现在我的问题是我不知道如何使

Sequelize-cli
指向我的文件夹并查找要生成和运行的迁移。

Sequelize-cli
为模型、配置、种子等生成自己的文件夹,我不想遵循这些文件夹。

如有任何帮助,我们将不胜感激。

javascript node.js sequelize.js sequelize-cli
3个回答
19
投票

编辑:

更新结构后,无法使用 .sequelizerc 文件来执行此操作,因为它不支持多个迁移文件夹。

您需要在项目根目录创建

.sequelizerc
文件来覆盖默认路径。参见这里

如果我假设

api
是文件夹结构中项目根目录中的第一个文件夹,则模型位于
api/user
中,迁移位于
api/user/migrations
中。以下应该有效:

const path = require('path');

module.exports = {
  'config': path.resolve('CONFIGPATHHERE', 'sequelize.js'),
  'models-path': path.resolve('api/user', 'sequelize'),
  'migrations-path': path.resolve('api/user', 'migrations')
}

确保指定了sequelize配置路径。


0
投票

基于问题[\https://github.com/sequelize/cli/issues/28]1我们可以在模型中添加标志:生成命令

(示例):npx Sequelize-cli model:generate --name modelName --models-path .\some\ --attributes name:string

确保模型正确导入到 models/index.js 文件中


0
投票

这可能会晚一些,但您也可以传入迁移路径,这可以是您想要的路径,sequelize 会自动在该目录中创建文件。

例如

npx sequelize-cli migration:generate --name create-user --migrations-path src/database/migrations
© www.soinside.com 2019 - 2024. All rights reserved.