[英]How to export persistent database to in-memory databse in h2 from terminal
編輯:修復了錯誤的命令。 我在磁盤上有一個 h2 數據庫。 如何將其導出到內存中? 我嘗試了以下方法:-
java -cp h2/bin/h2*.jar org.h2.tools.Server -tcp
java -cp h2/bin/h2*.jar org.h2.tools.RunScript -url jdbc:h2:$(pwd)/restapi -user sa -script export.sql
java -cp h2/bin/h2*.jar org.h2.tools.RunScript -tcp -url jdbc:h2:mem:testdb -user sa -script db-dump.sql &
其中 export.sql 包含:-
SCRIPT TO 'db-dump.sql
但是當我嘗試通過 web 控制台連接到 jdbc:h2:mem:testdb 時,出現以下錯誤:-
Database "mem:testdb" not found, either pre-create it or allow remote database creation (not recommended in secure environments) [90149-200] 90149/90149 (Help)
Server
工具沒有連接參數,不能用於新建數據庫; 您的第一個命令無效。 你檢查過它的output嗎?
RunScript
工具可以創建一個新的數據庫,但沒有理由用它創建一個嵌入式內存數據庫,這樣的數據庫將只對這個工具可用,並且只有在這個進程運行時才可用。
您需要采取其他步驟。
SCRIPT TO 'db-dump.sql'
(如果您在某處有打開的連接)或使用java -cp h2/bin/h2*.jar org.h2.tools.Script -url jdbc:h2:~/test -user sa -script db-dump.sql
如果這個持久數據庫沒有在任何地方打開。
java -jar h2/bin/h2*.jar
它應該使用 H2 控制台打開 web 瀏覽器 window。
In this window specify jdbc:h2:mem:1;INIT=RUNSCRIPT FROM 'db-dump.sql'
as JDBC URL.
您可以通過雙擊系統托盤中的 H2 控制台圖標重新打開此類 window,您可以使用其上下文菜單中的其他命令。
請注意,如果您直接在瀏覽器中鍵入localhost:8082
,您將無法在其中創建新數據庫; 您確實需要從 H2 打開它(或者您可以使用臨時安全密鑰從其狀態 window 中的托盤圖標的上下文菜單中復制 URL)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.