因此,我使用NX(Nest.js + Angular)启动了一个项目。我需要一个数据库,所以我配置了TypeORM。在“服务”模式下一切都工作正常,但是,我应该如何配置迁移呢?
在一个常规的Nest.js项目中,dist
目录中的所有内容都与您的项目具有相同的结构,因此迁移也会在那里编译和复制。因此,如果您正确配置了TypeORM,将migrationsRun
标志设置为true
,并正确设置了migrations
路径,则迁移会在应用启动时运行。
问题是,NX
使用webpack
,所以你在dist
中没有一个完整的结构,而只有一个main.js
文件,没有其他文件。
我的问题是:解决这个问题的最好方法是什么?我应该尝试重新配置webpack吗?还是有更好的方法?
我的项目结构大致如下:
project/
├─ apps/
│ ├─ api/
│ │ ├─ src/
│ │ │ ├─ config/
│ │ │ │ ├─ database/
│ │ │ │ │ ├─ typeorm.config.ts
│ │ │ ├─ database/
│ │ │ │ ├─ migrations/
| | | | | ├─ 1668904379611-SomeMigration.ts
├─ dist/
│ ├─ apps/
│ │ ├─ api/
│ │ │ ├─ main.js
typeorm.config.ts
host: process.env.MYSQL_HOST,
port: +process.env.MYSQL_PORT,
username: process.env.MYSQL_USER,
database: process.env.MYSQL_DATABASE,
password: process.env.MYSQL_PASSWORD,
entities: [__dirname + '/../../**/*.entity{.ts,.js}'],
migrations: [__dirname + '/../../**/database/migrations/*{.ts,.js}'],
extra: {
charset: 'utf8mb4_unicode_ci',
},
synchronize: false,
migrationsRun: true,
logging: true,
autoLoadEntities: true,
//编辑
我发现这是Webpack的问题,而不是NX本身。Webpack将所有内容都捆绑到一个main.js文件中。
1条答案
按热度按时间2nbm6dog1#
因此,在我的项目中,我们在一个名为lib的文件夹中有数据库的常规配置,该文件夹是通过NX命令生成的,对于每个服务,我们从lib中获取常规配置,并从其自身的配置中获取每个服务的迁移,然后我们在package.json中定义了一些目标来运行迁移。
//服务模块
//数据存储选项. ts
//项目名称
我希望这对你有帮助。😊