为了开发和部署我的WAR应用程序,我使用drop-and-create
功能。基本上从数据库中删除所有内容,然后根据我的@ Entity-classes自动重新创建所有必需的表和字段。
显然,对于生产而言drop-and-create
功能是不可能的。我如何创建数据库表和字段?
@ Entity-classes的优点在于,由于OQL
并且使用EntityManager
生成了所有数据库查询,因此WAR应用程序与数据库无关。如果我现在必须在SQL中手动创建查询然后让应用程序执行它们,那么我将不得不决定它们是哪种sql方言(即MySQL,Oracly,SQL Server,...)。有没有办法独立创建表数据库?有没有办法独立运行结构数据库更新以及数据库(即数据库版本1到数据库版本2)?比如改变字段或表名,添加表,删除表等?
答案 0 :(得分:0)
Thank you @Qwerky for mentioning Liquibase. This absolutely is a solution and perfect for my case as I won't have to worry about versioning anymore. Liquibase is very easy to understand and studied in minutes.
For anyone looking for database versioning / scheme appliance: