为数据库更新

时间:2015-06-30 16:00:46

标签: java database persistence persistence.xml

为了开发和部署我的WAR应用程序,我使用drop-and-create功能。基本上从数据库中删除所有内容,然后根据我的@ Entity-classes自动重新创建所有必需的表和字段。

显然,对于生产而言drop-and-create功能是不可能的。我如何创建数据库表和字段?

@ Entity-classes的优点在于,由于OQL并且使用EntityManager生成了所有数据库查询,因此WAR应用程序与数据库无关。如果我现在必须在SQL中手动创建查询然后让应用程序执行它们,那么我将不得不决定它们是哪种sql方言(即MySQL,Oracly,SQL Server,...)。有没有办法独立创建表数据库?有没有办法独立运行结构数据库更新以及数据库(即数据库版本1到数据库版本2)?比如改变字段或表名,添加表,删除表等?

1 个答案:

答案 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:

Liquibase