首页 > Space导入, csdn导入, 技术, 未分类 > 打算写一个简单的数据库迁移工具

打算写一个简单的数据库迁移工具

之前做项目一直被数据库schema改动折腾得不行,找了不少工具,比如migrate4j,dbmigrate和liquibase之类的,感觉都不是很满意。其实我的需求很简单,不需要数据库的DSL(比如migrate4j或者db:migrate的那种用Java/Ruby描述DDL),只需要纯的SQL(也就是db:migrate生成的SQL),只需要前向操纵(即不需要回滚),有Eclipse的插件。

现有的migration工具,都是使用分开的文件作为不同版本的内容,这带来了很大的灵活性。但是我的打算是对现有的开发模式有最小的影响。比如现在项目的开发方式是使用一个schema文件外加几个基础数据文件。于是我打算直接使用SVN作为数据库版本的保存工具,利用SVN的特性做版本化。最直接使用的就是SVN的版本号。不过这样的问题在于基本无法做rollback,除非使用两个文件,一个construction,一个destruction,但这要求两个文件一起提交,带来了不少复杂性。现有项目的schema不需要做rollback,正好这么做。工作的方式为:更新SVN,获得最新的schema文件和当前的版本做对比,把增加的部分(要求更新append在最后)执行一遍。就这么简单。

调查了一下午+半个晚上,基本把一些技术方案给调查清楚了。主要的难度在于和subclipse的集成。既然功能简单,就要做到易用。于是我打起了subclipse的主意,主要是subclipse保存的SVN用户名密码。发现subclipse还挺变态的,JavaHL的接口使用HOME目录保存,SVNKit接口使用Eclipse的keyrings文件。

这两天就动手,代码参考较为简单(或者说简陋)的dbmigrate。

  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word


Warning: fsockopen() has been disabled for security reasons in /home/onlymars/public_html/wp/wp-includes/class-snoopy.php on line 1142