RobertFischer / liquibase-dsl
- Source
- Commits
- Network (1)
- Issues (0)
- Downloads (0)
- Wiki (2)
- Graphs
-
Branch:
integration
Argelbargel (author)
Thu Feb 19 15:21:58 -0800 2009
| name | age | message | |
|---|---|---|---|
| |
.gitignore | ||
| |
BUILD.txt | ||
| |
COPYING | ||
| |
COPYING.LESSER | ||
| |
GROOVY.README | ||
| |
LICENSE.HEADER | ||
| |
README | ||
| |
TODO | ||
| |
build.xml | ||
| |
classpath | ||
| |
dependencies.xml | ||
| |
eg/ | ||
| |
lbdsl | ||
| |
runner | ||
| |
src/ | ||
| |
test/ |
README
+------------------------+ | Intention of this fork | +------------------------+ As I kept struggling with the provided maker.sh i decided to try to add an ant-based-way to build the Liquibase-DSL jar. To keep it compatible to maker.sh it re-uses an existing Groovy-Installation (and the libraries provided in the lib-directory below the root). If you don't have groovy installed and don't want to download all the other dependencies yourself, the build tries to resolve them (including the groovy-compiler) with ivy, so that all you need is java (jdk) and ant. Should even work on windows :-) +--------------------------+ | What is Liquibase | +--------------------------+ Liquibase is a database migration tool which allows non-linear development changesets, easy migration, and advanced business logic. It is, in short, an awesome solution for the problem of database management. Don't believe me? See the presentation at http://www.liquibase.org/swf/overview_long/LiquiBase%20TechTalk.html to be convinced. There's just two problems with Liquibase -- there's simply too much XML as it stands, and it's nontrivial to extend. This project seeks to remedy that. It provides the architecture for pluggable database change log formats, and comes packaged with a Groovy builder-based approach (what some might call a "DSL"). For details on the Groovy builder, see GROOVY.README. It also provides easy extension points for new commands, new predicates, and new database refactorings. It is liscensed under the LGPL, because that is what Liquibase is liscened under. For details, see COPYING.LESSER. For more information or to hire the developer, contact Robert Fischer at robert dot fischer _at_ smokejumperit dot com. You can read more about him at his blog (http://enfranchisedmind.com/blog) or at his Twitter stream (http://twitter.com/RobertFischer). His motivation for developing these things is so that he can implement an "autoliquibase" Grails plugin that transparently manages database changes and makes creating new migrations exceedingly easy. +-------+ | USAGE | +-------+ The file "lbdsl" is the driver for this project. Its jobs is to basically make sure your environment is set up right, and then to execute the appropate command. +----------+ | ENV VARS | +----------+ * LBDSL_HOME: The home directory where the JAR will be assumed to live (by default) and the root of the properties files structure (see "CUSTOMIZATION"). The directory will be created if it does not already exist. Defaults to "~/.lbdsl". * LBDSL_JAR: The location of the Liquibase-DSL jar file. Defaults to $LBDSL_HOME/lbdsl.jar * LBDSL_CLASSPATH: The classpath to use when executing Liquibase-DSL. The Liquibase-DSL jar file need not be specified in this classpath. * JAVA_CMD: The command to use for Java. Defaults to "java". * JAVA_OPTS: The options to specify to the Java command. Defaults to "-Xmx1024m -Xms256m". * CLASSPATH: If set, appended after LBDSL_CLASSPATH to for the application classpath. +----------+ | COMMANDS | +----------+ * hello-world: Simplest command to demonstrate that the driver is working. * migrate: Apples a change log. +---------------+ | CUSTOMIZATION | +---------------+ One of the things "lbdsl" does is create a directory specified by the LBDSL_HOME environment variable: that directory is where configuration properties can be dropped. Any file in that directory (or in a subdirectory of that directory) which ends in ".groovy" will be eval'ed and it will expect to get a map back. Any file in that directory (or in a subdirectory of that directory) that ends in ".properties" will be expected to be a "properties" file, as defined by java.util.Properties#load(InputStream). Any file in that directory (or in a subdirectory of that directory) that ends in ".xml" will be expected to be a properties XML file, as defined by java.util.Properties#loadFromXML(InputStream). All of those properties, taken together, constitute the properties for lbdsl, which provide extension points, so you can write your own command, provide custom changesets, and the like. +------------+ | PROPERTIES | +------------+ * lbdsl.home: The directory corresponding to LBDSL_HOME. * lbdsl.packages.cmd: Comma-delimited packages to search when looking up commands in order of priority. The package "liquibase.dsl.command" will always be searched first. e.g. lbdsl.packages.cmd=com.my.project.commands.package1,com.my.projects.commands.package2 * lbdsl.parser.suffix.*: Specifies that the suffix (given after "lbdsl.parser.suffix.") should map to the given parser class. e.g. lbdsl.parser.suffix.foo=com.my.project.parser.AwesomeChangeLogParser * lbdsl.db.driverClass: The driver class to use for database work * lbdsl.db.username: The username to log into the database with * lbdsl.db.password: The password to log into the database with * lbdsl.db.url: The connection string for the database


