Исключительная последовательность восстановления резервной копии базы данных H2 уже существует - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть приложение, которое использует встроенную базу данных H2. Я хочу реализовать функцию резервного копирования и восстановления. Я могу успешно сделать резервную копию своих данных, но у меня возникает препятствие, когда я пытаюсь восстановить их. Вот как я копирую это:

  String DBQ = "SCRIPT TO ?";
            PreparedStatement myStatement = connection.prepareStatement(DBQ);
            myStatement.setString(1, backupFile.getAbsolutePath());
            myStatement.executeQuery();

Я получаю файл резервной копии, сгенерированный очень хорошо с данными. Я не могу восстановить это однако. Вот как я пытаюсь восстановить его:

    String DBQ = "RUNSCRIPT FROM ?";
                PreparedStatement preparedStatement = connection.prepareStatement(DBQ);
                preparedStatement.setString(1,unencryptedFile.getAbsolutePath());
                preparedStatement.executeUpdate();

Я получаю org.h2.jdbc.JdbcSQLSyntaxErrorException: Sequence already exists. Я осмотрелся, и единственное, что я смог найти на нем, было в 2013 году без ответа Резервное копирование и восстановление h2 , и я уверен, что моя база данных не повреждена. Кажется, я не могу найти никакой документации, чтобы помочь мне решить эту проблему. Как я могу решить это?

1 Ответ

0 голосов
/ 28 апреля 2020

Вот целый пример, как сделать резервную копию + восстановить: https://gist.github.com/cwdesautels/11188409

...