我使用以下命令在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命令应覆盖here和here所述的persistence.xml设置。
答案 0 :(得分:1)
根据
asadmin帮助部署
和
asadmin帮助重新部署
对于4.0 / b89,你应该只使用其中一个?由|表示在帮助中。
" --createtables和--dropandcreatetables选项是互斥的;只应该使用一个。"
伊恩