2015-07-08 14:41:52,997 INFO -> (main) [org.jboss.deployment.EARDeployer] Started J2EE application: file:/usr/local/app/dcm4chee-2.18.0-mysql/server/default/deploy/dcm4chee-web-ear-3.0.4-mysql.earここで,最後のメッセージに注目していただきたい.「Missing table: published_study」とある.そう,テーブルpublished_studyがないということだ.我々は2.17.1をインストールして動作を確認後,データベースをそのままにしてシステムだけバージョン2.18.1に上げようとしていた.しかし,2.17.Xと2.18.Xではデータベースpacsdbの構造が違うのだ.少なくとも2.17.Xにはpublished_studyという名のテーブルなどない.これは,実際に確認済みである.また,/sql/create.mysqlにpacsdbを作るSQL(というかDDL)があるが,その中身を比較したところ,確かに2.17.1にはなかったpublished_studyのcreate table文が2.18.1にはあった.
2015-07-08 14:41:52,998 ERROR -> (main) [org.jboss.deployment.scanner.URLDeploymentScanner] Incomplete Deployment listing:
--- Incompletely deployed packages ---
org.jboss.deployment.DeploymentInfo@cd286966 { url=file:/usr/local/app/dcm4chee-2.18.0-mysql/server/default/deploy/dcm4chee-wado-service.xml }
deployer: org.jboss.deployment.SARDeployer@3adc2c8
status: Deployment FAILED reason: - nested throwable: (java.lang.reflect.InvocationTargetException)
state: FAILED
watch: file:/usr/local/app/dcm4chee-2.18.0-mysql/server/default/deploy/dcm4chee-wado-service.xml
altDD: null
lastDeployed: 1436334099282
lastModified: 1436334099000
mbeans:
--- MBeans waiting for other MBeans ---
ObjectName: persistence.units:ear=dcm4chee-web-ear-3.0.4-mysql.ear,unitName=dcm4chee-arc
State: FAILED
Reason: javax.persistence.PersistenceException: org.hibernate.HibernateException: Missing table: published_study
そこで,いったんpacsdbを削除し,再度作り直すとエラーは消えた.
$ mysql -uroot -pそれだけのことだった.そのそれだけのことでこれだけハマってしまった.データベースは作り直さなくてもよいはずだという固定観念が今回のトラブルを呼んだようだ.しかし,本番のデータベースの場合,移行する方法はあるのだろうか.今回はテストだからいったん削除して再度作り直したけれども・・・.
mysql> create database pacsdb;
mysql> grant all on pacsdb.* to 'pacs'@'localhost' identified by 'pacs';
mysql> \q
# cd /usr/local/app/dcm4chee-2.18.1-mysql/sql
# mysql -upacs -ppacs pacsdb < create.mysql
さらに,2.17.Xと2.18.Xを併存させるには一体どうすればよいのだろうか?まさか,データベースを別々に持つ?そんな馬鹿な・・・.
0 件のコメント:
コメントを投稿