| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- 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 schema sync migration to tenant database(s).
- */
- public class ApplyLobsterSchemaSync {
- private static final String HOST = "cq-cdb-8fjmemkb.sql.tencentcdb.com:27220";
- private static final String USER = "root";
- private static final String PWD = "Ylrz_1q2w3e4r5t6y";
- public static void main(String[] args) throws Exception {
- String[] dbs = args.length > 0 ? args : new String[]{"fs_tenant_cs1"};
- String sql = Files.readString(
- Path.of("d:/ylrz_saas_new/java/fs-service/src/main/resources/db/tenant-initTable-migration-lobster-schema-sync.sql"),
- StandardCharsets.UTF_8);
- for (String db : dbs) {
- String url = "jdbc:mysql://" + HOST + "/" + db
- + "?useSSL=false&serverTimezone=GMT%2B8&allowMultiQueries=true&connectTimeout=15000&socketTimeout=120000";
- System.out.println("Applying lobster schema sync to " + db + " ...");
- try (Connection c = DriverManager.getConnection(url, USER, PWD);
- Statement st = c.createStatement()) {
- st.execute(sql);
- for (String tbl : new String[]{"lobster_execution_config", "lobster_tenant_keywords", "lobster_user_profile"}) {
- try (ResultSet rs = st.executeQuery(
- "SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME='" + tbl + "'")) {
- rs.next();
- System.out.println(" " + tbl + ": " + (rs.getInt(1) > 0 ? "OK" : "MISSING"));
- }
- }
- try (ResultSet rs = st.executeQuery(
- "SELECT company_id FROM lobster_execution_config WHERE company_id=338 LIMIT 1")) {
- if (rs.next()) {
- System.out.println(" lobster_execution_config row for company 338: exists");
- } else {
- st.execute("INSERT IGNORE INTO lobster_execution_config (company_id) VALUES (338)");
- System.out.println(" lobster_execution_config row for company 338: inserted default");
- }
- } catch (Exception e) {
- System.out.println(" seed company 338 config skipped: " + e.getMessage());
- }
- st.execute("CREATE TABLE IF NOT EXISTS lobster_tool_config ("
- + "id BIGINT AUTO_INCREMENT PRIMARY KEY,"
- + "company_id BIGINT NOT NULL DEFAULT 0,"
- + "tool_name VARCHAR(128) NOT NULL,"
- + "tool_type VARCHAR(64) DEFAULT NULL,"
- + "description VARCHAR(500) DEFAULT NULL,"
- + "config_json TEXT,"
- + "enabled TINYINT NOT NULL DEFAULT 1,"
- + "deleted TINYINT NOT NULL DEFAULT 0,"
- + "create_time DATETIME DEFAULT CURRENT_TIMESTAMP,"
- + "UNIQUE KEY uk_company_tool (company_id, tool_name)"
- + ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4");
- System.out.println(" lobster_tool_config: ensured");
- }
- System.out.println("Done " + db);
- }
- }
- }
|