1

我正在写剧本!框架后端。我开始设置jpa.ddl=update。但是,正如大家所建议的那样,我在准备生产时将其更改为jpa.ddl=none.

自从这样做以来,我的理解是我必须自己通过使用数据库演变来跟踪数据库模式。到目前为止,我一直很好,但是现在我正在修改我的模型,我发现 JPA 正在执行 SQL 查询,假设存在我没有手动创建的某些表。

我无法想象正确的做法是简单地运行我的代码,收到如下错误:

ERROR: relation "games_users" does not exist

然后编写将创建该表的进化脚本。那么有没有办法查看 JPA/Play 认为当前模式应该基于我的模型,以便我可以创建它或者有更好的方法来做到这一点?

4

1 回答 1

1

一个解决方案可能是,jpa.ddl=update在您开发时使用,并且您不断修改您的 JPA 模型。不建议在生产中让 JPA 更新您的模型,但您可以在开发中使用它。当您的软件稳定并且您不再需要修改 JPA 实体时,您可以从自动生成的模式切换到固定模式。

另一种解决方案可以在另一个数据库名称上开发,然后在两个数据库之间进行差异生成sql脚本。

一个更无聊的解决方案是手动保留SQL进化脚本,每次修改 JPA 实体时编写一个脚本。

于 2013-07-03T07:15:25.173 回答