我们应用架构更新的方式是这样的:
- 将每个 SQL 包装成一个字符串
- 创建一个更新对象,它接受 SQL、版本 ID 和另一个字符串“更新原因”
- 假设我们有 100 个更新,每一个都将被创建,并保存到一个列表中
- 然后循环遍历列表,将版本 id 与保存在数据库中的当前版本 id 进行比较,只有当它高于当前版本时才会应用更新。
问题是我们在这个类中有超过 4000 行代码。
大多数更新都是几年前完成的,我讨厌每次都加载它们
在java中有更好的方法吗?
我们应用架构更新的方式是这样的:
问题是我们在这个类中有超过 4000 行代码。
大多数更新都是几年前完成的,我讨厌每次都加载它们
在java中有更好的方法吗?
有很多工具可以做到这一点。看了一堆之后,我最终选择了Liquibase。更改存储在文件中,顺便说一句,这些文件也可以进行版本控制,如果您使用的是 github 或 bitbucket,人们会在进入时看到它们,并可以发表评论等。
您可以将 sql 放入文件而不是 java 代码中。sql 文件的文件命名策略可以将版本和更新原因作为文件名的一部分,或者您可以将原因放在文件中。代码将遍历目录中的文件并将它们添加到列表中,然后像往常一样处理。