ApplyLobsterUddAdminMenus.java 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import java.nio.charset.StandardCharsets;
  2. import java.nio.file.Files;
  3. import java.nio.file.Path;
  4. import java.sql.Connection;
  5. import java.sql.DriverManager;
  6. import java.sql.ResultSet;
  7. import java.sql.Statement;
  8. /** Apply V20260728 UDD admin menus to tenant sys_menu + master tenant_sys_menu. */
  9. public class ApplyLobsterUddAdminMenus {
  10. private static final String HOST = "cq-cdb-8fjmemkb.sql.tencentcdb.com:27220";
  11. private static final String USER = "root";
  12. private static final String PASS = "Ylrz_1q2w3e4r5t6y";
  13. public static void main(String[] args) throws Exception {
  14. Class.forName("com.mysql.cj.jdbc.Driver");
  15. String tenantDb = args.length > 0 ? args[0] : "fs_tenant_cs1";
  16. String tenantSql = read("d:/ylrz_saas_new/java/fs-agent/src/main/resources/db/migration/tenant/V20260728_01__lobster_udd_admin_menus.sql");
  17. String masterSql = read("d:/ylrz_saas_new/java/sql/master/V20260728_01__lobster_udd_admin_menus_master.sql");
  18. System.out.println("=== MASTER ylrz_saas ===");
  19. try (Connection c = open("ylrz_saas")) {
  20. exec(c, masterSql);
  21. show(c, "tenant_sys_menu");
  22. }
  23. System.out.println("\n=== TENANT " + tenantDb + " ===");
  24. try (Connection c = open(tenantDb)) {
  25. exec(c, tenantSql);
  26. show(c, "sys_menu");
  27. }
  28. System.out.println("\nDone.");
  29. }
  30. private static String read(String path) throws Exception {
  31. byte[] bytes = Files.readAllBytes(Path.of(path));
  32. String s = new String(bytes, StandardCharsets.UTF_8);
  33. return s.startsWith("") ? s.substring(1) : s;
  34. }
  35. private static void exec(Connection c, String sql) throws Exception {
  36. try (Statement st = c.createStatement()) { st.execute(sql); }
  37. }
  38. private static void show(Connection c, String table) throws Exception {
  39. String sql = "SELECT menu_id, menu_name, path FROM " + table
  40. + " WHERE menu_id IN (29965, 29966) ORDER BY menu_id";
  41. try (Statement st = c.createStatement(); ResultSet rs = st.executeQuery(sql)) {
  42. while (rs.next()) {
  43. System.out.printf("[%d] %s | %s%n", rs.getLong(1), rs.getString(2), rs.getString(3));
  44. }
  45. }
  46. }
  47. private static Connection open(String db) throws Exception {
  48. return DriverManager.getConnection(
  49. "jdbc:mysql://" + HOST + "/" + db
  50. + "?useSSL=false&serverTimezone=GMT%2B8&characterEncoding=utf8&allowMultiQueries=true",
  51. USER, PASS);
  52. }
  53. }