Hibernate 怎么看什么戏!认为数据库架构是
我在写剧本!框架后端。我开始设置Hibernate 怎么看什么戏!认为数据库架构是,hibernate,jpa,playframework,Hibernate,Jpa,Playframework,我在写剧本!框架后端。我开始设置jpa.ddl=update。然而,正如大家建议的那样,我在准备生产时将此更改为jpa.ddl=none 从那以后,我的理解是,我必须通过使用数据库进化来跟踪数据库模式。到目前为止,我做得还不错,但现在我正在修改我的模型,我发现JPA正在执行SQL查询,假设存在某些我没有手动创建的表 我无法想象正确的做法是运行我的代码,收到如下错误: ERROR: relation "games_users" does not exist 然后编写将创建该表的演化脚本。那么,有
jpa.ddl=update
。然而,正如大家建议的那样,我在准备生产时将此更改为jpa.ddl=none
从那以后,我的理解是,我必须通过使用数据库进化来跟踪数据库模式。到目前为止,我做得还不错,但现在我正在修改我的模型,我发现JPA正在执行SQL查询,假设存在某些我没有手动创建的表
我无法想象正确的做法是运行我的代码,收到如下错误:
ERROR: relation "games_users" does not exist
然后编写将创建该表的演化脚本。那么,有没有一种方法可以看出JPA/Play认为当前模式应该基于我的模型,这样我就可以创建它,或者有更好的方法可以做到这一点呢?一个解决方案是,在开发过程中使用
JPA.ddl=update
,然后不断修改JPA模型。不建议在生产中让JPA更新您的模型,但您可以在开发中使用它。当您的软件稳定,并且不再需要修改JPA实体时,您可以从自动生成的模式切换到固定模式
另一个解决方案是在另一个数据库名称上开发,然后在两个数据库之间进行区分,生成sql
脚本
一个更无聊的解决方案是手动保留
SQL
evolution脚本,每次修改JPA实体时都编写一个脚本。一个解决方案可以是,在开发过程中使用JPA.ddl=update
,并不断修改JPA模型。不建议在生产中让JPA更新您的模型,但您可以在开发中使用它。当您的软件稳定,并且不再需要修改JPA实体时,您可以从自动生成的模式切换到固定模式
另一个解决方案是在另一个数据库名称上开发,然后在两个数据库之间进行区分,生成sql
脚本
一个更无聊的解决方案是手动保留
SQL
evolution脚本,每次修改JPA实体时都编写一个脚本。这是一个解决方案,但如果这是“正确”的解决方案,那么这似乎是使用play的一个缺点。如果我错了,请纠正我,但使用Hibernate/JPA从SQL中抽象出来的目的不是吗?这是一个解决方案,但如果这是“正确”的解决方案,那么使用play似乎是一个缺点。如果我错了,请纠正我,但使用Hibernate/JPA从SQL中抽象出来的意义不就在于此吗?