正如标题所示,我正在尝试将我的h2数据库迁移到postgres docker。
我使用命令
转储了我的h2数据库SCRIPT TO 'fileName'
然后我通过docker cp命令将文件复制到我的docker。之后,我创建了一个新数据库,并尝试启动
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 docker?
有没有更好的方法来完成所有这些?
这是我的application.config
spring.datasource.url=jdbc:h2:/tmp/ossdb:testdb;MODE=PostgreSQL
spring.datasource.username=admin
spring.datasource.password=admin
spring.datasource.platform=postgresql