为什么Glassfish会在部署时删除表?

时间:2014-07-29 15:22:27

标签: java java-ee deployment glassfish

我使用以下命令在Glassfish 3/4上部署我的* .ear文件的更新,并保留(但禁用)旧版本的* .ear文件:

./asadmin --user admin deploy --name MyProject:0.9.2 --createtables=false --dropandcreatetables=false --enabled=true --force=true /home/updates/MyProject.ear

这总是在不触及数据库的情况下工作。我已经通过脚本手动应用了数据库更改。

但突然间这不再起作用了。应用程序正确部署,但正在删除数据库并重新创建...

我的Glassfish版本目前为4.0 / b89。有人知道 asadmin deploy 命令是否存在错误?如何在不丢弃数据库的情况下部署任何其他想法?

EDIT1:顺便说一句:我使用Eclipse-Link 2.4作为JPA提供者(如果这有帮助......)

EDIT2:我现在尝试了所有可能的组合(仅使用--createtables = false或--dropandcreatetables = false),但似乎没有任何效果。每次都会删除数据库。我意识到,如果将表创建策略设置为" none"在persistence.xml中,它适用于后续部署(不删除数据库)。但是,当--dropandcreatetables选项设置为false时,asadmin / deploy或redeploy命令应覆盖herehere所述的persistence.xml设置。

1 个答案:

答案 0 :(得分:1)

根据

  

asadmin帮助部署

  

asadmin帮助重新部署

对于4.0 / b89,你应该只使用其中一个?由|表示在帮助中。

" --createtables和--dropandcreatetables选项是互斥的;只应该使用一个。"

伊恩