为数据库更新增强 persistence.xml
Enhance persistence.xml for database update
为了开发和部署我的 WAR 应用程序,我使用了 drop-and-create
功能。基本上从数据库中删除所有内容,然后根据我的@Entity-类.
自动重新创建所有必要的 tables 和字段
显然,对于生产,drop-and-create
功能是不可能的。我将如何创建数据库 tables 和字段?
@Entity-类 的好处在于,由于 OQL
和 EntityManager
的使用,生成了所有数据库查询,因此 WAR 应用程序独立于数据库。如果我现在必须在 SQL 中手动创建查询,然后让应用程序执行它们,那么我将不得不决定它们使用哪种 sql 方言(即 MySQL、Oracly、 SQL 服务器,...)。有没有办法独立创建 tables 数据库?有没有办法 运行 结构数据库更新以及独立的数据库(即数据库版本 1 到数据库版本 2)?比如更改字段或 table 名称、添加 table、删除 table 等?
感谢@Qwerky 提及 Liquibase。这绝对是一个解决方案,非常适合我的情况,因为我不必再担心版本控制了。 Liquibase非常简单易懂,分分钟学会。
任何正在寻找数据库版本控制/方案设备的人:
为了开发和部署我的 WAR 应用程序,我使用了 drop-and-create
功能。基本上从数据库中删除所有内容,然后根据我的@Entity-类.
显然,对于生产,drop-and-create
功能是不可能的。我将如何创建数据库 tables 和字段?
@Entity-类 的好处在于,由于 OQL
和 EntityManager
的使用,生成了所有数据库查询,因此 WAR 应用程序独立于数据库。如果我现在必须在 SQL 中手动创建查询,然后让应用程序执行它们,那么我将不得不决定它们使用哪种 sql 方言(即 MySQL、Oracly、 SQL 服务器,...)。有没有办法独立创建 tables 数据库?有没有办法 运行 结构数据库更新以及独立的数据库(即数据库版本 1 到数据库版本 2)?比如更改字段或 table 名称、添加 table、删除 table 等?
感谢@Qwerky 提及 Liquibase。这绝对是一个解决方案,非常适合我的情况,因为我不必再担心版本控制了。 Liquibase非常简单易懂,分分钟学会。
任何正在寻找数据库版本控制/方案设备的人: