FinalSync.java 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. import java.sql.*;
  2. import java.nio.file.*;
  3. public class FinalSync {
  4. static final String MASTER_URL = "jdbc:mysql://cq-cdb-8fjmemkb.sql.tencentcdb.com:27220/ylrz_saas?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useSSL=false&allowMultiQueries=true";
  5. static final String TENANT_URL = "jdbc:mysql://cq-cdb-8fjmemkb.sql.tencentcdb.com:27220/fs_tenant_t202606174488?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useSSL=false&allowMultiQueries=true";
  6. static final String USER = "root";
  7. static final String PASS = "Ylrz_1q2w3e4r5t6y";
  8. public static void main(String[] args) throws Exception {
  9. Class.forName("com.mysql.cj.jdbc.Driver");
  10. // === MASTER ===
  11. System.out.println("=== MASTER ===");
  12. String masterSql = Files.readString(Paths.get("d:\\ylrz_saas_new\\java\\sql\\master\\V20260618_02__lobster_menu_full_sync.sql"));
  13. try (Connection c = DriverManager.getConnection(MASTER_URL, USER, PASS);
  14. Statement s = c.createStatement()) {
  15. s.execute(masterSql);
  16. System.out.println("OK");
  17. } catch (SQLException e) {
  18. System.out.println("ERR: " + e.getMessage().split("\\n")[0]);
  19. }
  20. // Verify master
  21. try (Connection c = DriverManager.getConnection(MASTER_URL, USER, PASS);
  22. Statement s = c.createStatement()) {
  23. System.out.println(" tenant_sys_menu 29941: "+exists(s,"tenant_sys_menu",29941));
  24. System.out.println(" tenant_sys_menu 29950: "+exists(s,"tenant_sys_menu",29950));
  25. System.out.println(" tenant_company_menu 29941: "+exists(s,"tenant_company_menu",29941));
  26. System.out.println(" tenant_company_menu 29950: "+exists(s,"tenant_company_menu",29950));
  27. System.out.println(" tenant_company_menu count: "+cnt(s,"tenant_company_menu"));
  28. System.out.println(" tenant_sys_menu count: "+cnt(s,"tenant_sys_menu"));
  29. }
  30. // === TENANT ===
  31. System.out.println("\n=== TENANT (fs_tenant_t202606174488) ===");
  32. String tenantSql = Files.readString(Paths.get("d:\\ylrz_saas_new\\java\\fs-agent\\src\\main\\resources\\db\\migration\\tenant\\V20260618_08__lobster_menu_complete_sync.sql"));
  33. try (Connection c = DriverManager.getConnection(TENANT_URL, USER, PASS);
  34. Statement s = c.createStatement()) {
  35. s.execute(tenantSql);
  36. System.out.println("OK");
  37. } catch (SQLException e) {
  38. System.out.println("ERR: " + e.getMessage().split("\\n")[0]);
  39. }
  40. // Verify tenant
  41. try (Connection c = DriverManager.getConnection(TENANT_URL, USER, PASS);
  42. Statement s = c.createStatement()) {
  43. System.out.println(" sys_menu: " + list(s,"sys_menu"));
  44. System.out.println(" company_menu: " + list(s,"company_menu"));
  45. System.out.println(" sys_menu count: "+cnt(s,"sys_menu"));
  46. System.out.println(" company_menu count: "+cnt(s,"company_menu"));
  47. }
  48. System.out.println("\n=== DONE ===");
  49. }
  50. static int cnt(Statement s, String t) throws SQLException {
  51. ResultSet rs = s.executeQuery("SELECT COUNT(1) FROM "+t+" WHERE menu_id BETWEEN 29900 AND 29999");
  52. rs.next(); return rs.getInt(1);
  53. }
  54. static String exists(Statement s, String t, int id) throws SQLException {
  55. ResultSet rs = s.executeQuery("SELECT menu_id, menu_name FROM "+t+" WHERE menu_id="+id);
  56. if (rs.next()) return rs.getString(1)+"("+rs.getString(2)+")";
  57. return "MISSING";
  58. }
  59. static String list(Statement s, String t) throws SQLException {
  60. StringBuilder sb = new StringBuilder();
  61. ResultSet rs = s.executeQuery("SELECT menu_id, CASE visible WHEN '0' THEN '' ELSE 'H' END FROM "+t+" WHERE menu_id BETWEEN 29900 AND 29999 ORDER BY menu_id");
  62. while (rs.next()) sb.append(rs.getString(1)).append(rs.getString(2)).append(" ");
  63. return sb.toString();
  64. }
  65. }