import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; /** Apply V20260728 UDD admin menus to tenant sys_menu + master tenant_sys_menu. */ public class ApplyLobsterUddAdminMenus { private static final String HOST = "cq-cdb-8fjmemkb.sql.tencentcdb.com:27220"; private static final String USER = "root"; private static final String PASS = "Ylrz_1q2w3e4r5t6y"; public static void main(String[] args) throws Exception { Class.forName("com.mysql.cj.jdbc.Driver"); String tenantDb = args.length > 0 ? args[0] : "fs_tenant_cs1"; String tenantSql = read("d:/ylrz_saas_new/java/fs-agent/src/main/resources/db/migration/tenant/V20260728_01__lobster_udd_admin_menus.sql"); String masterSql = read("d:/ylrz_saas_new/java/sql/master/V20260728_01__lobster_udd_admin_menus_master.sql"); System.out.println("=== MASTER ylrz_saas ==="); try (Connection c = open("ylrz_saas")) { exec(c, masterSql); show(c, "tenant_sys_menu"); } System.out.println("\n=== TENANT " + tenantDb + " ==="); try (Connection c = open(tenantDb)) { exec(c, tenantSql); show(c, "sys_menu"); } System.out.println("\nDone."); } private static String read(String path) throws Exception { byte[] bytes = Files.readAllBytes(Path.of(path)); String s = new String(bytes, StandardCharsets.UTF_8); return s.startsWith("") ? s.substring(1) : s; } private static void exec(Connection c, String sql) throws Exception { try (Statement st = c.createStatement()) { st.execute(sql); } } private static void show(Connection c, String table) throws Exception { String sql = "SELECT menu_id, menu_name, path FROM " + table + " WHERE menu_id IN (29965, 29966) ORDER BY menu_id"; try (Statement st = c.createStatement(); ResultSet rs = st.executeQuery(sql)) { while (rs.next()) { System.out.printf("[%d] %s | %s%n", rs.getLong(1), rs.getString(2), rs.getString(3)); } } } private static Connection open(String db) throws Exception { return DriverManager.getConnection( "jdbc:mysql://" + HOST + "/" + db + "?useSSL=false&serverTimezone=GMT%2B8&characterEncoding=utf8&allowMultiQueries=true", USER, PASS); } }