85 lines
3.7 KiB
Java
85 lines
3.7 KiB
Java
|
|
import java.sql.*;
|
|||
|
|
|
|||
|
|
public class check_account {
|
|||
|
|
public static void main(String[] args) {
|
|||
|
|
String dbPath = "/home/renjianbo/gerrit_install/review_site/db/ReviewDB";
|
|||
|
|
|
|||
|
|
try {
|
|||
|
|
Class.forName("org.h2.Driver");
|
|||
|
|
String url = "jdbc:h2:" + dbPath + ";AUTO_SERVER=TRUE";
|
|||
|
|
Connection conn = DriverManager.getConnection(url, "sa", "");
|
|||
|
|
|
|||
|
|
System.out.println("=== 检查账户信息 ===\n");
|
|||
|
|
|
|||
|
|
// 检查 accounts 表(H2 数据库表名可能是大写)
|
|||
|
|
System.out.println("1. Accounts 表:");
|
|||
|
|
Statement stmt = conn.createStatement();
|
|||
|
|
// 先尝试查看所有表
|
|||
|
|
ResultSet tables = conn.getMetaData().getTables(null, null, "%", new String[]{"TABLE"});
|
|||
|
|
System.out.println(" 数据库中的表:");
|
|||
|
|
while (tables.next()) {
|
|||
|
|
System.out.println(" - " + tables.getString("TABLE_NAME"));
|
|||
|
|
}
|
|||
|
|
System.out.println();
|
|||
|
|
|
|||
|
|
// 尝试查询账户(使用大写表名)
|
|||
|
|
ResultSet rs = stmt.executeQuery("SELECT ACCOUNT_ID, FULL_NAME, PREFERRED_EMAIL, INACTIVE, REGISTERED_ON FROM ACCOUNTS ORDER BY ACCOUNT_ID");
|
|||
|
|
boolean hasAccounts = false;
|
|||
|
|
while (rs.next()) {
|
|||
|
|
hasAccounts = true;
|
|||
|
|
System.out.println(" Account ID: " + rs.getInt("ACCOUNT_ID"));
|
|||
|
|
System.out.println(" Full Name: " + rs.getString("FULL_NAME"));
|
|||
|
|
System.out.println(" Email: " + rs.getString("PREFERRED_EMAIL"));
|
|||
|
|
System.out.println(" Inactive: " + rs.getInt("INACTIVE"));
|
|||
|
|
System.out.println(" Registered: " + rs.getTimestamp("REGISTERED_ON"));
|
|||
|
|
System.out.println();
|
|||
|
|
}
|
|||
|
|
if (!hasAccounts) {
|
|||
|
|
System.out.println(" (无账户)");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 检查 account_external_ids 表
|
|||
|
|
System.out.println("2. Account External IDs 表:");
|
|||
|
|
rs = stmt.executeQuery("SELECT ACCOUNT_ID, EMAIL_ADDRESS, EXTERNAL_ID FROM ACCOUNT_EXTERNAL_IDS ORDER BY ACCOUNT_ID");
|
|||
|
|
boolean hasExtIds = false;
|
|||
|
|
while (rs.next()) {
|
|||
|
|
hasExtIds = true;
|
|||
|
|
System.out.println(" Account ID: " + rs.getInt("ACCOUNT_ID"));
|
|||
|
|
System.out.println(" Email: " + rs.getString("EMAIL_ADDRESS"));
|
|||
|
|
System.out.println(" External ID: " + rs.getString("EXTERNAL_ID"));
|
|||
|
|
System.out.println();
|
|||
|
|
}
|
|||
|
|
if (!hasExtIds) {
|
|||
|
|
System.out.println(" (无外部ID)");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 检查管理员组
|
|||
|
|
System.out.println("3. 管理员组成员:");
|
|||
|
|
rs = stmt.executeQuery(
|
|||
|
|
"SELECT a.ACCOUNT_ID, a.FULL_NAME " +
|
|||
|
|
"FROM ACCOUNTS a " +
|
|||
|
|
"JOIN ACCOUNT_GROUP_MEMBERS agm ON a.ACCOUNT_ID = agm.ACCOUNT_ID " +
|
|||
|
|
"JOIN ACCOUNT_GROUPS ag ON agm.GROUP_ID = ag.GROUP_ID " +
|
|||
|
|
"WHERE ag.NAME = 'Administrators' " +
|
|||
|
|
"ORDER BY a.ACCOUNT_ID"
|
|||
|
|
);
|
|||
|
|
boolean hasAdmins = false;
|
|||
|
|
while (rs.next()) {
|
|||
|
|
hasAdmins = true;
|
|||
|
|
System.out.println(" Account ID: " + rs.getInt("ACCOUNT_ID") + ", Name: " + rs.getString("FULL_NAME"));
|
|||
|
|
}
|
|||
|
|
if (!hasAdmins) {
|
|||
|
|
System.out.println(" (无管理员)");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
conn.close();
|
|||
|
|
System.out.println("\n=== 检查完成 ===");
|
|||
|
|
|
|||
|
|
} catch (Exception e) {
|
|||
|
|
System.err.println("错误: " + e.getMessage());
|
|||
|
|
e.printStackTrace();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|