Skip to content

Instantly share code, notes, and snippets.

Revisions

  1. jeremyjarrell created this gist Jul 25, 2013.
    20 changes: 20 additions & 0 deletions Prefix migrations with timestamp Groovy task
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,20 @@
    task prefixNewMigrations {

    fileTree(dir: 'dev/src/db/listhub').exclude({ isFilePrefixed(it.file) }).each { file ->
    doLast {

    def timestamp = new Date().format('yyyyMMddHHmmssSSS', TimeZone.getTimeZone('GMT'))

    println "Renaming $file.name to ${timestamp}__$file.name"

    file.renameTo("$file.parentFile.absolutePath$file.separator${timestamp}__$file.name")

    // Sleep for a moment to avoid prefix conflicts when renaming multiple files
    sleep(1*1000)
    }
    }
    }

    def isFilePrefixed(file) {
    return (file.name ==~ '^\\d+__.*\\.sql\$')
    }