Перенос базы данных h2 в докер postgresql в java spring

Как указано в заголовке, я пытаюсь перенести свою базу данных h2 в докер postgres.

Я сделал дамп своей базы данных h2 с помощью команды

SCRIPT TO 'fileName'

Затем я скопировал файл в свой докер с помощью команды docker cp. После этого я создал новую базу данных и попробовал запустить

psql realdb < myfile.sql

что дало мне огромное количество ошибок, в том числе:

    ERROR:  syntax error at or near "."
LINE 1: ...TER TABLE PUBLIC.FILE_RECORD ADD CONSTRAINT PUBLIC.CONSTRAIN...
                                                             ^
ERROR:  syntax error at or near "CACHED"
LINE 1: CREATE CACHED TABLE PUBLIC.NODE_EVENT(
               ^
ERROR:  syntax error at or near "."
LINE 1: ...LTER TABLE PUBLIC.NODE_EVENT ADD CONSTRAINT PUBLIC.CONSTRAIN...
                                                             ^
ERROR:  relation "public.node_event" does not exist
LINE 1: INSERT INTO PUBLIC.NODE_EVENT(ID, DAY, HOUR, MINUTE, MONTH, ...
                    ^
NOTICE:  table "system_lob_stream" does not exist, skipping
DROP TABLE
ERROR:  syntax error at or near "CALL"
LINE 1: CALL SYSTEM_COMBINE_BLOB(-1);

Поэтому я решил попробовать сбросить базу данных в виде файла csv, что, возможно, является более стандартным подходом, используя команду

call CSVWRITE( '/home/lee/test.csv' , 'SELECT * FROM PORT' )

который, кажется, работает только для одной таблицы за раз. Есть ли способ экспортировать сразу все таблицы? Как мне импортировать их в докер postgres?

Есть ли лучший способ сделать все это?

Это мой application.config

spring.datasource.url=jdbc:h2:/tmp/ossdb:testdb;MODE=PostgreSQL
spring.datasource.username=admin
spring.datasource.password=admin
spring.datasource.platform=postgresql

Скорее всего автоматизированного способа нет. Но если бы я делал это, я бы экспортировал его в файл .sql, как и вы, и вручную изменил объявления таблиц, чтобы отразить синтаксис postgresql.

Sasha Shpota 05.04.2018 09:28
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
1
425
0

Другие вопросы по теме