Я экспериментирую с DBUnit (2.6.0) и пытаюсь экспортировать свою полную базу данных (PostgreSQL). Однако выдается следующее исключение:
Исключение в потоке "main" org.dbunit.database.AmbiguousTableNameException: FLYWAY_SCHEMA_HISTORY
Это правильное поведение, так как у меня есть две таблицы в разных схемах с одинаковым именем:
Затем я прочитал, что вы можете установить свойство Квалифицированные имена таблиц (http://dbunit.sourceforge.net/properties.html#qualifiedtablenames)), которое будет учитывать имя схемы. Поэтому мой код теперь следующий:
public class DbUnitExportTool {
public static void main(String[] args) throws Exception {
// database connection
Class.forName("org.postgresql.Driver");
Connection jdbcConnection = DriverManager.getConnection("jdbc:postgresql://localhost:5432/*******", "********", "********");
IDatabaseConnection connection = new DatabaseConnection(jdbcConnection);
connection.getConfig().setProperty(DatabaseConfig.FEATURE_QUALIFIED_TABLE_NAMES, true);
exportDatabase(connection);
}
private static void exportDatabase(IDatabaseConnection connection) throws Exception {
// full database export
IDataSet fullDataSet = connection.createDataSet();
FlatXmlDataSet.write(fullDataSet, new FileOutputStream("full.xml"));
}
}
Проблема в том, что я все еще получаю ту же ошибку, и я не знаю, почему, так как ее следует устранить, установив для квалифицированных имен таблиц значение true? Кто-нибудь знает, что я делаю не так?