我正在写剧本!框架后端。我开始设置jpa.ddl=update
。但是,正如我所有人都建议的那样,我在准备生产jpa.ddl=none
时改变了这一点。
由于这样做,我的理解是我必须通过使用数据库演进来自己跟踪数据库模式。到目前为止,我一直很好,但是现在我正在对我的模型进行修改,我发现JPA正在执行SQL查询,假设存在某些我没有手动创建的表。
我无法想象正确的事情就是运行我的代码,收到这样的错误:
ERROR: relation "games_users" does not exist
然后编写将创建该表的evolution脚本。那么有没有办法看看JPA / Play认为当前架构应该基于我的模型,以便我可以创建它或者有更好的方法来做到这一点吗?
答案 0 :(得分:1)
解决方案可能是,在您开发过程中使用jpa.ddl=update
,并且您不断修改JPA模型。在生产中不建议JPA更新您的模型,但您可以在开发中使用它。当您的软件稳定,并且您不再需要修改JPA实体时,您可以从自动生成的模式切换到固定模式。
可以在另一个数据库名称上开发另一个解决方案,然后在生成sql
脚本的两个数据库之间进行差异化。
更无聊的解决方案是手动保留SQL
进化脚本,每次修改JPA实体时编写脚本。