| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- 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 lobster canonical menu sync to master + tenant DB(s).
- * Usage:
- * java -cp ".;lib/mysql-connector-j-8.0.33.jar" ApplyLobsterCanonicalMenus [tenantDb]
- */
- public class ApplyLobsterCanonicalMenus {
- 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";
- private static final String MASTER_DB = "ylrz_saas";
- 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";
- Path tenantSql = Path.of("d:/ylrz_saas_new/java/fs-agent/src/main/resources/db/migration/tenant/V20260727_01__lobster_menu_canonical_sync.sql");
- Path masterSql = Path.of("d:/ylrz_saas_new/java/sql/master/V20260727_01__lobster_menu_canonical_sync.sql");
- System.out.println("=== MASTER " + MASTER_DB + " ===");
- try (Connection c = open(MASTER_DB)) {
- exec(c, readSql(masterSql));
- report(c, "tenant_sys_menu");
- report(c, "tenant_company_menu");
- }
- System.out.println("\n=== TENANT " + tenantDb + " ===");
- try (Connection c = open(tenantDb)) {
- exec(c, readSql(tenantSql));
- report(c, "sys_menu");
- report(c, "company_menu");
- }
- System.out.println("\nDone.");
- }
- private static String readSql(Path path) throws Exception {
- byte[] bytes = Files.readAllBytes(path);
- String sql = new String(bytes, StandardCharsets.UTF_8);
- if (!sql.isEmpty() && sql.charAt(0) == '') {
- sql = sql.substring(1);
- }
- return sql;
- }
- private static void exec(Connection c, String sql) throws Exception {
- try (Statement st = c.createStatement()) {
- st.execute(sql);
- }
- }
- private static void report(Connection c, String table) throws Exception {
- System.out.println("\n--- " + table + " ---");
- String sql = "SELECT menu_id, menu_name, order_num, path FROM " + table
- + " WHERE menu_id=29900 OR parent_id=29900 ORDER BY order_num, menu_id";
- try (Statement st = c.createStatement(); ResultSet rs = st.executeQuery(sql)) {
- while (rs.next()) {
- System.out.printf("[%d] order=%d | %s | %s%n",
- rs.getLong("menu_id"), rs.getInt("order_num"),
- rs.getString("menu_name"), rs.getString("path"));
- }
- }
- }
- 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);
- }
- }
|