From c933d6ac2bbebdbf9af188980875e0f3be145b30 Mon Sep 17 00:00:00 2001 From: Jonathan Bernard Date: Tue, 17 May 2016 21:35:57 -0500 Subject: [PATCH] Separated statement running logic in Groovy implementation to allow reuse. --- build.gradle | 2 +- db_migrate.nimble | 2 +- .../com/jdblabs/dbmigrate/DbMigrate.groovy | 27 ++++++++++--------- src/main/nim/db_migrate.nim | 2 +- 4 files changed, 18 insertions(+), 15 deletions(-) diff --git a/build.gradle b/build.gradle index 7ae4a1d..e8c33f9 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ apply plugin: 'application' apply plugin: 'maven' group = 'com.jdblabs' -version = '0.2.2' +version = '0.2.3' mainClassName = 'com.jdblabs.dbmigrate.DbMigrate' diff --git a/db_migrate.nimble b/db_migrate.nimble index 2f36e07..3f2013d 100644 --- a/db_migrate.nimble +++ b/db_migrate.nimble @@ -1,7 +1,7 @@ # Package bin = @["db_migrate"] -version = "0.2.2" +version = "0.2.3" author = "Jonathan Bernard" description = "Simple tool to handle database migrations." license = "BSD" diff --git a/src/main/groovy/com/jdblabs/dbmigrate/DbMigrate.groovy b/src/main/groovy/com/jdblabs/dbmigrate/DbMigrate.groovy index 165843c..3ca285f 100644 --- a/src/main/groovy/com/jdblabs/dbmigrate/DbMigrate.groovy +++ b/src/main/groovy/com/jdblabs/dbmigrate/DbMigrate.groovy @@ -15,7 +15,7 @@ import org.slf4j.LoggerFactory public class DbMigrate { - public static final VERSION = "0.2.2" + public static final VERSION = "0.2.3" public static final def DOC = """\ db-migrate.groovy v${VERSION} @@ -222,17 +222,7 @@ CREATE TABLE IF NOT EXISTS migrations ( throw new FileNotFoundException(migrationFile.canonicalPath + "does not exist or is not a regular file.") - LOGGER.trace('Raw statements:\n\n{}\n', migrationFile.text.split(/;/).join('\n')) - - List statements = migrationFile.text.split(/;/) - .collect { it.replaceAll(/--.*$/, '').trim() } - .findAll { it.length() > 0 } - - LOGGER.trace('Statements:\n\n{}\n', statements.join('\n')) - - statements.each { - LOGGER.trace('Executing SQL: {}', it) - sql.execute(it) } + runFile(migrationFile) if (up) sql.execute( 'INSERT INTO migrations (name) VALUES (?)', migrationName) @@ -248,4 +238,17 @@ CREATE TABLE IF NOT EXISTS migrations ( catch (Exception e) { sql.execute('ROLLBACK'); } return migrationsRun } + + public void runFile(File file) { + LOGGER.trace('Raw statements:\n\n{}\n', file.text.split(/;/).join('\n')) + + List statements = file.text.split(/;/) + .collect { it.replaceAll(/--.*$/, '').trim() } + .findAll { it.length() > 0 } + + LOGGER.trace('Statements:\n\n{}\n', statements.join('\n')) + + statements.each { + LOGGER.trace('Executing SQL: {}', it) + sql.execute(it) } } } diff --git a/src/main/nim/db_migrate.nim b/src/main/nim/db_migrate.nim index 5ced445..4db018a 100644 --- a/src/main/nim/db_migrate.nim +++ b/src/main/nim/db_migrate.nim @@ -182,7 +182,7 @@ Options: """ # Parse arguments - let args = docopt(doc, version = "db-migrate 0.2.2") + let args = docopt(doc, version = "db-migrate 0.2.3") let exitErr = proc(msg: string): void = fatal("db_migrate: " & msg)