aaa
fun truncateAllTables(dsl: DSLContext) {
dsl.transaction { config ->
val ctx = DSL.using(config)
val excludeTables = setOf("flyway_schema_history")
val tableNames = ctx.fetch("""
SELECT tablename
FROM pg_tables
WHERE schemaname = 'public'
AND tablename NOT IN (${excludeTables.joinToString(",") { "'$it'" }})
""").map { it.getValue(0, String::class.java) }
if (tableNames.isNotEmpty()) {
val tables = tableNames.joinToString(", ") { "\"$it\"" }
ctx.execute("TRUNCATE TABLE $tables RESTART IDENTITY CASCADE")
}
}
}