hackycy / egg-typeorm

🔥 TypeORM plugin for Egg.js
MIT License
13 stars 5 forks source link

建议 config 文件除了yaml, 也支持 json #2

Closed zellzh closed 3 years ago

zellzh commented 3 years ago

egg 程序运行时必须要配置 config.typeorm 项目中使用 typeorm 迁移时, 又必须配置 ormconfig.yaml 这两个重复了, 建议同时支持 ormconfig.json, 这样方便直接导入到 config.typeorm 中使用

hackycy commented 3 years ago

@zellzh ormconfig.yaml和config.typeorm是不重复的。

config.typeorm是配置数据库连接的。

ormconfig.yaml为了支持动态生成d.ts,支持类型声明更好开发。 但是egg-ts-helper又没有办法获取config配置。 只能折中将ConnectionOptions中的entities这一项单独提取出来配置在ormconfig.yaml文件里面。

TypeORM支持的配置文件太多了,这样的话动态生成d.ts根据获取的配置文件也会繁多了起来。

不过后续会思考一下如何实现,谢谢建议。

zellzh commented 3 years ago

@hackycy 如果不使用迁移的话确实不重复, 可以正常使用, 但是用到迁移, 就要重新配置一遍数据库的选项了 是否可以考虑动态生成d.ts中不用给repo类型注解, 而仅使用索引签名注解repository类型即可 e.g: repo: { [ index: string ] : repository }

hackycy commented 3 years ago

@zellzh 先前写的时候的确没有考虑过迁移这一块。 后续改改思路吧。如果写好烦请帮忙一齐测试一下哈

zellzh commented 3 years ago

@hackycy 十分乐意, 加油

hackycy commented 3 years ago

@zellzh 我昨天测试了以下,配置迁移也是没有问题的呀。 config.typeorm下的配置是运行的时候需要用到的配置。而配置文件json那些你可以重复定义没有问题的。 就是如果用到迁移就要配置两份配置。用不到迁移就不需要。 你可以参考一下example里的测试代码,我昨天晚上测了

hackycy commented 3 years ago

@zellzh 已更新支持四种配置文件js、json、yaml、yml