diff --git a/db_migrate.nimble b/db_migrate.nimble index 5f6cd05..fe95131 100644 --- a/db_migrate.nimble +++ b/db_migrate.nimble @@ -1,7 +1,7 @@ # Package bin = @["db_migrate"] -version = "0.3.0" +version = "0.3.1" author = "Jonathan Bernard" description = "Simple tool to handle database migrations." license = "BSD" diff --git a/src/main/nim/db_migrate.nim b/src/main/nim/db_migrate.nim index 0f040c9..a222acc 100644 --- a/src/main/nim/db_migrate.nim +++ b/src/main/nim/db_migrate.nim @@ -89,6 +89,9 @@ proc diffMigrations*( run: seq[string], notRun, missing: seq[MigrationEntry] ] = + debug "diffMigrations: inspecting database and configured directories " & + "for migrations" + # Query the database to find out what migrations have been run. var migrationsRun = initHashSet[string]() @@ -98,7 +101,9 @@ proc diffMigrations*( # Inspect the filesystem to see what migrations are available. var migrationsAvailable = newTable[string, MigrationEntry]() for sqlDir in config.sqlDirs: + debug "Looking in " & sqlDir for filePath in walkFiles(joinPath(sqlDir, "*.sql")): + debug "Saw migration file: " & filePath var migrationName = filePath.extractFilename migrationName.removeSuffix("-up.sql") migrationName.removeSuffix("-down.sql") @@ -125,11 +130,18 @@ proc diffMigrations*( missingMigrations.add(migrationsNotRun) migrationsNotRun = newSeq[MigrationEntry]() - return (available: migrationsAvailable, + result = (available: migrationsAvailable, run: toSeq(migrationsRun.items).sorted(system.cmp), notRun: migrationsNotRun, missing: missingMigrations) + debug "diffMigration: Results" & + "\n\tavailable: " & $toSeq(result[0].keys) & + "\n\trun: " & $result[1] & + "\n\tnotRun: " & $(result[2].mapIt(it.name)) & + "\n\tmissing: " & $(result[3].mapIt(it.name)) + + proc readStatements*(filename: string): seq[SqlQuery] = result = @[] var stmt: string = ""