代码之家  ›  专栏  ›  技术社区  ›  Jens Schauder

是否有用于比较数据库模式的javaapi

  •  4
  • Jens Schauder  · 技术社区  · 14 年前

    • 桌子
    • 索引及其列
    • 约束条件

    在两个数据库中,模式是相同的。

    有这样的吗?可能是从数据库迁移管理工具?

    4 回复  |  直到 11 年前
        1
  •  3
  •   stacker    14 年前

    我不知道我使用的模式比较的高级API DatabaseMetaData 不难发现差异,例如重设所有表的日期,您可以执行以下操作:

    DatabaseMetaData meta = con.getMetaData();
      ResultSet res = meta.getTables(null, null, null, 
         new String[] {"TABLE"});
      System.out.println("List of tables: "); 
      while (res.next()) {
         System.out.println(
            "   "+res.getString("TABLE_CAT") 
           + ", "+res.getString("TABLE_SCHEM")
           + ", "+res.getString("TABLE_NAME")
           + ", "+res.getString("TABLE_TYPE")
           + ", "+res.getString("REMARKS")); 
      }
      res.close();
    

    getColumns(String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern) 
    getExportedKeys(String catalog, String schema, String table)
    getIndexInfo(String catalog, String schema, String table, boolean unique, boolean approximate) 
    getPrimaryKeys(String catalog, String schema, String table) 
    
        2
  •  3
  •   Sualeh Fatehi    12 年前

    SchemaCrawler 提供一个JavaAPI,将数据库元数据表示为普通的旧Java对象。虽然没有API来比较数据库元数据对象,但是SchemaCrawler使用标准的diff工具生成文本(text、JSON、CSV、HTML)输出,这些输出被设计成diff-ed。

    苏亚勒法提希,阴谋家

        3
  •  2
  •   sanastasiadis    8 年前

    LiquiBase database diff . 但我不知道是否有一个API,或只是一个工具。

        4
  •  1
  •   duffymo    14 年前

    您必须连接到两者,获取它们各自的数据库元数据,并比较两者。