metabase默認數據庫遷徙

metabase遷移底層數據庫從H2到Mysql

作者: Don 時間: April 19, 2018 分類: 代碼分析
最近用metabase搞了一套內部BI可視化系統。

這段時間看資料,發現metabase默認是用的H2數據庫,會有單點風險。

今天有時間,把底層數據庫從H2直接遷移到了Mysql。

注:metabase安裝目錄爲/usr/local/metabase,下面所有操作命令都在改目錄下進行。

備份H2數據庫。
進入metabase的啓動目錄,找到類似metabase.db.*的文件,有兩個,拷貝到其他目錄做備份。

ll metabase/
total 86712
-rw-r–r-- 1 root root 57577472 Apr 19 18:23 metabase.db.mv.db
-rw-r–r-- 1 root root 31212428 Apr 19 18:23 metabase.db.trace.db
配置metabase的mysql配置。往/etc/profile文件末尾,添加下面代碼,將裏面的配置信息改成你自己的,保存後記得加載一下配置。

export MB_DB_TYPE=mysql
export MB_DB_DBNAME=metabase數據庫
export MB_DB_PORT=mysql端口
export MB_DB_USER=mysql用戶
export MB_DB_PASS=mysql密碼
export MB_DB_HOST=mysql機器ip
執行遷移腳本。

java -jar metabase.jar load-from-h2 ./metabase.db
輸出結果類似如下:

04-19 18:29:04 INFO metabase.util :: Loading Metabase…
04-19 18:29:09 INFO util.encryption :: DB details encryption is DISABLED for this Metabase instance. ?
See http://www.metabase.com/docs/latest/operations-guide/start.html#encrypting-your-database-connection-details-at-rest for more information.
04-19 18:29:20 INFO metabase.db :: Verifying mysql Database Connection …
04-19 18:29:21 INFO metabase.db :: Verify Database Connection … ?
04-19 18:29:21 INFO metabase.db :: Running Database Migrations…
04-19 18:29:21 INFO metabase.db :: Setting up Liquibase…
04-19 18:29:21 INFO metabase.db :: Liquibase is ready.
04-19 18:29:21 INFO metabase.db :: Checking if Database has unrun migrations…
04-19 18:29:24 WARN liquibase :: modifyDataType will lose primary key/autoincrement/not null settings for mysql. Use and re-specify all configuration if this is the case
04-19 18:29:24 WARN liquibase :: modifyDataType will lose primary key/autoincrement/not null settings for mysql. Use and re-specify all configuration if this is the case
04-19 18:29:24 INFO metabase.db :: Database has unrun migrations. Waiting for migration lock to be cleared…
04-19 18:29:24 INFO metabase.db :: Migration lock is cleared. Running migrations…
04-19 18:29:25 WARN liquibase :: modifyDataType will lose primary key/autoincrement/not null settings for mysql. Use and re-specify all configuration if this is the case
04-19 18:29:25 WARN liquibase :: modifyDataType will lose primary key/autoincrement/not null settings for mysql. Use and re-specify all configuration if this is the case
04-19 18:30:28 INFO metabase.db :: Database Migrations Current … ?
com.mchange.v2.cfg.DelayedLogItem [ level -> FINE, text -> “The configuration file for resource identifier ‘hocon:/reference,/application,/c3p0,/’ could not be found. Skipping.”, exception -> null]
Temporarily disabling DB constraints…
[OK]
Transfering 6 instances of Database…[OK]
Transfering 6 instances of User…[OK]
Transfering 12 instances of Setting…[OK]
Transfering 103 instances of Table…[OK]
Transfering 2270 instances of Field…[OK]
Transfering 1064 instances of FieldValues…[OK]
Transfering 352 instances of Revision…[OK]
Transfering 1409 instances of ViewLog…[OK]
Transfering 73 instances of Session…[OK]
Transfering 6 instances of Dashboard…[OK]
Transfering 58 instances of Card…[OK]
Transfering 42 instances of DashboardCard…[OK]
Transfering 358 instances of Activity…[OK]
Transfering 4 instances of PermissionsGroup…[OK]
Transfering 12 instances of PermissionsGroupMembership…[OK]
Transfering 16 instances of Permissions…[OK]
Transfering 4 instances of PermissionsRevision…[OK]
Transfering 5 instances of Collection…[OK]
Transfering 2 instances of CollectionRevision…[OK]
Transfering 16 instances of DataMigrations…[OK]
Re?nabling DB constraints…
[OK]
如果出現The configuration file for resource identifier ‘hocon:/reference,/application,/c3p0,/’ could not be found的錯誤,說明前面的配置沒有加載,執行source /etc/profile加載配置後再執行上面命令。

重新啓動metabase。

nohup java -jar metabase.jar &
參考資料:
installing-and-running-metabase

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章