我是
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
为模型、配置、种子等生成自己的文件夹,我不想遵循这些文件夹。
如有任何帮助,我们将不胜感激。
编辑:
更新结构后,无法使用 .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配置路径。
基于问题[\https://github.com/sequelize/cli/issues/28]1我们可以在模型中添加标志:生成命令
(示例):npx Sequelize-cli model:generate --name modelName --models-path .\some\ --attributes name:string
确保模型正确导入到 models/index.js 文件中
这可能会晚一些,但您也可以传入迁移路径,这可以是您想要的路径,sequelize 会自动在该目录中创建文件。
例如
npx sequelize-cli migration:generate --name create-user --migrations-path src/database/migrations