def execute = """D:\\dev\\postgresql-16.1-1\\bin\\pg_dump.exe  -d coal_master -h 127.0.0.1 -p 5432 -U postgres  -a  --inserts -t t_permission -t t_resource  -t t_permission_resources --column-inserts """
        .execute(["PGPASSWORD=abc@123"], new File("../"))


def bs = new ByteArrayOutputStream()
execute.consumeProcessErrorStream(bs)


def insertSQL = execute.text.split("\n").findAll { it.startsWith("INSERT") }.collect { it.replace("INSERT INTO public.", "INSERT INTO ") }

if (execute.exitValue() != 0) {

    println(new String(bs.toByteArray(), "GBK"))
    throw new Exception("execute.exitValue()!=0")}


if (insertSQL.size() < 10) {
    throw new Exception("insertSQL.size() < 10")
}

insertSQL.add(0, """
truncate table t_permission;

truncate table t_permission_resources;

truncate table t_resource;

""")

def lastVersion = new File("../src/main/resources/db/migration/").listFiles().findAll { it.name.matches("V\\d+__.+") }.collect { it.name.split("_")[0].substring(1).toInteger() }.sort().last()


(new File("../src/main/resources/db/migration/V${lastVersion + 1}__resourceAll.sql")).text = insertSQL.join("\n")