check_missing_columns.ps1 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. # 检查并添加缺少的列
  2. $classpath = "d:\VUEobject\ModelPlatform\ruoyi-admin\lib\DmJdbcDriver18-8.1.2.192.jar"
  3. # 创建检查脚本
  4. $javaCode = @'
  5. import java.sql.*;
  6. public class CheckMissingColumns {
  7. public static void main(String[] args) {
  8. try {
  9. Class.forName("dm.jdbc.driver.DmDriver");
  10. Connection conn = DriverManager.getConnection("jdbc:dm://192.168.0.145:30236", "WATERSHED", "WaterShed./1224");
  11. Statement stmt = conn.createStatement();
  12. DatabaseMetaData meta = conn.getMetaData();
  13. System.out.println("检查WATERSHED_MODEL表结构...");
  14. ResultSet columns = meta.getColumns(null, null, "WATERSHED_MODEL", null);
  15. // 记录现有列名
  16. java.util.Set<String> existingColumns = new java.util.HashSet<>();
  17. System.out.println("现有列:");
  18. while (columns.next()) {
  19. String columnName = columns.getString("COLUMN_NAME");
  20. existingColumns.add(columnName);
  21. System.out.println(" - " + columnName);
  22. }
  23. // 需要的列
  24. String[] requiredColumns = {
  25. "MODEL_ID", "MODEL_NAME", "DESCRIPTION", "CATEGORY",
  26. "SUBCATEGORY", "MODEL_TYPE", "MODEL_FORMAT", "FILE_PATH",
  27. "FILE_SIZE", "UPLOAD_UNIT", "STATUS", "CREATE_TIME", "UPDATE_TIME"
  28. };
  29. System.out.println("\n需要的列:");
  30. for (String col : requiredColumns) {
  31. System.out.println(" - " + col + (existingColumns.contains(col) ? " ✓" : " ✗ 缺失"));
  32. }
  33. // 添加缺失的列
  34. System.out.println("\n添加缺失的列...");
  35. // 检查并添加DESCRIPTION列
  36. if (!existingColumns.contains("DESCRIPTION")) {
  37. System.out.println("添加DESCRIPTION列...");
  38. stmt.executeUpdate("ALTER TABLE WATERSHED_MODEL ADD DESCRIPTION VARCHAR(500)");
  39. }
  40. // 检查并添加CATEGORY列
  41. if (!existingColumns.contains("CATEGORY")) {
  42. System.out.println("添加CATEGORY列...");
  43. stmt.executeUpdate("ALTER TABLE WATERSHED_MODEL ADD CATEGORY VARCHAR(50)");
  44. }
  45. // 检查并添加SUBCATEGORY列
  46. if (!existingColumns.contains("SUBCATEGORY")) {
  47. System.out.println("添加SUBCATEGORY列...");
  48. stmt.executeUpdate("ALTER TABLE WATERSHED_MODEL ADD SUBCATEGORY VARCHAR(50)");
  49. }
  50. // 测试查询
  51. System.out.println("\n测试查询所有列...");
  52. ResultSet queryRs = stmt.executeQuery("select model_id, model_name, description, category, subcategory, model_type, model_format, file_path, file_size, upload_unit, status, create_time, update_time from WATERSHED_MODEL");
  53. System.out.println("✅ 查询成功!");
  54. stmt.close();
  55. conn.close();
  56. } catch (Exception e) {
  57. e.printStackTrace();
  58. }
  59. }
  60. }
  61. '@
  62. # 保存Java代码到文件
  63. $javaCode | Out-File -FilePath "d:\VUEobject\ModelPlatform\CheckMissingColumns.java" -Encoding ascii
  64. # 编译Java代码
  65. javac -cp $classpath "d:\VUEobject\ModelPlatform\CheckMissingColumns.java"
  66. # 运行Java程序
  67. java -cp "$classpath;d:\VUEobject\ModelPlatform" CheckMissingColumns