首页 > 解决方案 > 如何将数据从 SQL Server 传输到 mongodb(使用 mongoose 模式进行验证)

问题描述

目标
我们有一个实现严格猫鼬模式的 MEAN 堆栈应用程序。MEAN 堆栈应用程序需要使用源自 SQL Server 数据库的数据播种。只要种子数据符合猫鼬模式,应用程序就应该按预期运行。

问题
目前,数据传输作业是通过不执行验证的 mongo CLI 完成的。出现的问题是 Date 对象被保存为字符串、缺少我们的架构所需的键、缺少整个文档等。开发团队已经失去了数小时的开发时间来调试应用程序并发现这些数据问题。

我们正在寻找的解决方案

我们如何验证数据:

免责声明
我不是数据传输过程的一部分,因此我没有关于该过程细节的更多细节。

标签: sqlnode.jsmongodbmongoosedatabase-migration

解决方案


这是您可能称之为“批量导入”、“提取-转换-加载 (ETL)”或“数据存储迁移”的一般问题,与任何特定技术断开连接。我会通过以下方式处理它:

  1. 将数据导出为某种可移植格式(例如 CSV 或 JSON)

  2. 通过将持续处理新数据的相同验证逻辑将数据推送到新系统中。

通常需要稍微修改一下这个逻辑。例如,您的 API 可能会为正常操作自动生成时间戳,但对于数据导入,您希望从旧数据源显式设置它们。更复杂的情况是当存在跨越模型/实体的约束时需要暂停,直到所有数据都存在。

通常,您编写导入脚本或系统来生成处理了多少记录、哪些记录失败以及原因的摘要。然后你解决问题,在剩余的记录上运行它。重复直到你满意为止。

PS 对导入脚本进行版本控制是个好主意。


推荐阅读