Db-onion is a project mainly written in Clojure, it's free.
Applies sql scripts in order to a db
Done:
DB Onion should automatically update your version number
Apply only scripts that need to be applied (if version is at 4 start applying script 5)
Reads scripts from disk and applies them in order to a db
Commit after each script
On exception don't commit the script + don't process future scripts
If you're missing a version you have 1,2,4 provide error feedback!
If DB is not configured to be versioned (ie no version table) provide error feedback
refactor db-onion to split into multiple files one, maybe one dealing with file i/o another with db stuff
When everything works print "yay we applied n-n'"
Build a jar (via leiningen)
configure db connection information
Check that we really work against an actual database
create ant task for db onion - Need to call through to the actual DBOnion
Specifying / configuring the script directory
Provide feedback if DB Onion is run and no scripts need to be applied.
When DB Onion is pointed at a non-existent script directory, provide some feedback.
Add ant task to create version table
If there was an error stop the (Ant) build
Upgrade to Clojure 1.2
TODO:
Initialize task should provide nicer feedback on error/exception
Need better error handling/reporting when connecting to the DB. version-table-missing? treats any exception as if the version table didn't exist.
Fix DB Onion to either not need the version initialized to 0, or to provide some useful error message otherwise.
'Success' message incorrect when one or more scripts don't complete successfully.
Configure version table name - Maybe you already have a version table