有一个问题困扰了我好几年。我有几百个 mdb 格式 (Microsoft Access 2000) 的数据库,其中包含四分之一世纪以来的数据,我不想丢失它们。这是一个复杂的问题,因为它涉及几个问题。数据库仍在使用中,所以我不能只是替换它们。此外,作为十年积累的结果,它们是非常意大利面条式的代码。最后,使用这些数据库的人通常对计算机几乎一无所知。
重要提示:这些数据库由自愿协会使用。它们通常在旧的、过时的、低内存、低性能的计算机上运行。它们大多是 Windows PC。
最后,作为最后一项要求,即使在没有互联网连接的情况下,它们也必须能够工作。最好大部分时间完全离线。数据从一台机器到另一台机器的传输必须使用 USB 记忆棒或 CD 快速简便。
我尝试了各种解决方案,但找不到有效的解决方案。
一种尝试是将mdbtools用于 linux。但是,我在各种 linux 发行版中遇到了限制。我还必须寻找适用于 Windows 的版本。然后我寻找一种在 Windows 和 Linux 上都使用 mdbtools 的方法。经过几次尝试,我创建了一个包,N Node MdbTools运行良好。为了能够读取 Access 文件,只需使用命令安装包
npm install @el3um4s/mdbtools
然后,我可以使用类似于以下的函数获取 mdb 文件中的表列表:
const windowsPath = "./mdbtools-win";
const database = "./src/__tests__/fruit.mdb";
const list = await tables({ database, windowsPath });