首先我的问题是:是否有任何标准/通用方法来实现维护和更新 MySQL 数据库的软件包?
我是一名本科研究助理,我的任务是创建一个更新我们大学内部生物信息学数据库之一的 cron 工作。
我没有在完成工作的各个方面的单一二进制文件上构建,而是将问题划分为子任务并编写了一些 python/c++ 模块来处理不同的任务,如下面的管道中所列:
- 查询远程数据库以获取更新文件列表并返回给定时间间隔的结果(每月更新文件/每周/每天);
- 在 python 中实现的模块。更新文件的 URL 输出到标准输出
- 读入更新文件的相对 URL 并下载到本地目录
- 在 python 中实现的模块
- 解压缩新文件的每个存档
- 实现为 bash 脚本
- 将文件解析为 CSV 格式
- 用 C++ 实现的模块
- 运行 MySQL 查询以将 CSV 文件插入数据库
- 显然只是一个 bash 脚本
我不确定如何将这些模块组合到一个可以轻松移动到另一台机器的包中,例如如果我们当前的服务器空间不足并且需要将数据库复制到另一个文件系统(它已经发生过一次)前)。
我的第一个想法是创建一个 bash 脚本,将所有这些模块连接在一起,因为它们都使用标准输入/标准输出进行操作,但这似乎是一种奇怪的做事方式。
或者,我可以将我的 C++ 代码编写为 python 扩展,将所有这些脚本打包在一起,然后编写一个为我工作的 python 文件。
我应该使用包管理器以便我的代码可以轻松安装在不同的机器上吗?包含 makefile 的整个更新程序的简单 zip 存档就足够了吗?
我对数据库管理非常陌生,并且在分发软件方面没有大量经验,但我想做好这个项目。我在这里先向您的帮助表示感谢。