1. A method of converting a first version of a database to a second version, including: determining the database version of the first version of the database based on a key obtained by taking a hash of the database schema of the database in the first version; determining available translation steps; using a processor to select a translation path from the first version of the database to the second version of the database, wherein the translation path includes a sequence of two or more translation steps that are a subset of the available translation steps, wherein the selected translation steps comprise a first selected translation step and a second selected translation step, each translation step being expressed in a markup language; and executing the selected translation steps in the translation path, wherein executing comprises: using the first selected translation step to convert the first version of the database to a third version of the database; and using the second selected translation step to convert the third version of the database to the second version of the database, wherein each of the first version of the database, the second version of the database, and the third version of the database is associated with a fully migrated version of the database, wherein the selecting of the translation path includes selecting one translation path from a plurality of translation paths based on either a shortest path or a first path, the third version of the database being different from each other for each of the translation paths.