mybatis-migration

章威
2023-12-01

Introduction 

    Evolving databases has been one of the major challenges for software development.  Often  times, regardless of our software development methodology, the database follows a different  change management process.  Despite our best efforts, few tools and practices have been able to change that. The tools of the past have been GUI centric, proprietary for a particular  database and/or carried a steep license cost.  Yet, at the end of the day they suffered from the  same challenges.

    Recently, a few tools arrived and changed all of that.  They did so by embracing simplicity and a few simple rules for database evolution to follow. A couple of good examples are Rails Migrations and dbdeploy.Both tools are similar in purpose,but quite different in implementation.  The MyBatis  Schema Migration System draws from both and seeks to be the  

best migration tool of its kind. 

   软件开发中数据库迁移是一个很大的挑战。无论我们采用的什么开发方法,都需要管理程序处理数据库变化。尽管我们花费了很大的努力,很少有工具或方法能解决这个问题。过去以GUI为主的数据库工具的所有权的和(或)昂贵许可证,使他们负担了很大的费用。然而,他们只能承担这个费用。

    目前,一些工具已经改变了这些问题。他们支持简单的和部分数据库变化规则。一个好例子是:rails migrations ,dbdeploy.两个工具都有相似的意图,但是不同的实现方法。Mybatis Schema Migation Sysetem继承两者的优点,致力于做最好的数据库变化迁移工具。

Goals 

To achieve a good database change management practice, we need to identify a few key goals. Thus, the MyBatis Schema Migration System (or MyBatis Migrations for short) seeks to:  

  • Work with any database, new or existing 
  • Leverage the source control system (e.g. Subversion) 
  • Enable concurrent developers or teams to work independently
  • Allow conflicts very visible and easily manageable
  • Allow for forward and backward migration (evolve, devolve respectively)
  • Make the current status of the database easily accessible and comprehensible 
  • Enable migrations despite access privileges or bureaucracy
  • Work with any methodology
  • Encourages good, consistent practices 

为了成为一个好的数据库版本控制方式,我们明确了一些关键目标,MyBatis Schema Migration System致力于解决一些问题:

1. 支持新的和已经存在的任何数据库

2. 支持版本控制 e.g svn

3. 支持并发开发或独立使用

4. 可视化冲突及容易管理

5. 允许向前或向后迁移

6. 使当前数据库状态容易接入及使用

7. 可迁移数据库控制权限(可能翻译不对)

8. 以任何方式方法工作

9. 鼓励好的实现方式、并坚持实践

 类似资料: