Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 播放框架-数据库创建丢弃问题_Mysql_Playframework_Playframework 1.x - Fatal编程技术网

Mysql 播放框架-数据库创建丢弃问题

Mysql 播放框架-数据库创建丢弃问题,mysql,playframework,playframework-1.x,Mysql,Playframework,Playframework 1.x,我在和Play一起工作!1.2.4我遇到了一个奇怪的问题 据我所知,如果我在配置中设置jpa.ddl来创建drop,它应该删除我的表并重建和重新启动应用程序 jpa.ddl=create-drop 我认为它只会删除和创建与已更改的模型相关联的表,对吗?我遇到了一个问题,我有一个改变了的模型,但它并没有丢掉桌子。我试图手动删除该表,但它不允许,因为它无法删除或更新父行:外键约束失败。我理解这个问题,为了解决它,我可以手动删除整个表并重新启动应用程序,这样它就可以从头开始构建表 我的问题是,这就是

我在和Play一起工作!1.2.4我遇到了一个奇怪的问题

据我所知,如果我在配置中设置jpa.ddl来创建drop,它应该删除我的表并重建和重新启动应用程序

jpa.ddl=create-drop
我认为它只会删除和创建与已更改的模型相关联的表,对吗?我遇到了一个问题,我有一个改变了的模型,但它并没有丢掉桌子。我试图手动删除该表,但它不允许,因为它
无法删除或更新父行:外键约束失败。我理解这个问题,为了解决它,我可以手动删除整个表并重新启动应用程序,这样它就可以从头开始构建表

我的问题是,这就是玩的问题!这就是为什么它不更新表的原因,如果是这样,有没有办法通过配置文件绕过它,而不是手动删除我的表

谢谢

编辑

为了获得更多信息,我假设这是一个问题,可能是完全不同的问题,但以下是我在日志中得到的信息:

Unsuccessful: create table Product
Table 'Product' already exists
我也刚刚意识到在这个负载上发生了变化。我曾经有过这样的关系

Product *-* Image
这是产品和图像表之间的许多关系。图像表现在不存在,关系将消失。然而,在我看来,图像表并没有被删除,而ProductOne正试图被删除并重建。这可能会导致外键约束出现问题。如果该表的模型不再存在,为什么Play不删除该表?

在开发模式下运行Play?
但是为什么不使用jpa.ddl=update呢?

使用jpa自动修改模式并不是最好的方法。Play提供了更可靠的演进机制,因为您指出了哪些变化

在您给出的示例中,如果删除像Image这样的模型类,JPA将不再了解Image类,因此它不会删除Image表和Product_Image relationshop表。因此它不能删除产品表。在您更改模型之前,JPA不知道数据库是什么

Evolutions在一开始使用时有点繁琐,因为您可以手动创建Evolutions文件,但使用这种机制,您的数据库结构正是您想要的