Как указано в заголовке, я пытаюсь перенести свою базу данных 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.