Possible features for an Agile Database Release System:
- Allows construction of a database at a particular version
- Allows migration from an existing database to a later version
- Allows migration from an existing database to an earlier version
- Human readable format for releases
- Release ‘action’ available on multiple environments (ie various operating systems) allowing development on a different platform than production
- Provides a complete history of changes for each database object
- Provides a current creation script for each database object
- The source code can be branched and merged
- Allows multiple developers to work with/on the same database source code, at the same time
- Supports an ‘automated build’ / ‘continuous integration’ enviroment
- Automatically records database changes by the developer in their development area
- Supports use of parameters to configure variable parts of the release (eg the password part of “CREATE USER warren IDENTIFIED BY xyzzy”)