2014-01-13 32 views
0

我在Play 2.1.5中有项目,并且我决定迁移到Play 2.2.1。我跟着http://www.playframework.com/documentation/2.2.1/Migration22和一切工作,除了在启动时,它看起来像项目试图创建数据库,而不是更新它。我总是得到重复错误。我在使用Play 2.1.5时没有遇到这个问题。我看不出有什么问题,我的配置,但也许我忽略的东西:Play framework 2.2.1总是试图在启动时创建数据库

application.conf

db.default.jndiName=DefaultDS 
jpa.default=defaultPersistenceUnit 
db.default.url="jdbc:mysql://localhost/database" 
db.default.driver=com.mysql.jdbc.Driver 

的persistence.xml

<persistence xmlns="http://java.sun.com/xml/ns/persistence" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" 
     version="2.0"> 

<persistence-unit name="defaultPersistenceUnit" transaction-type="RESOURCE_LOCAL"> 
    <provider>org.hibernate.ejb.HibernatePersistence</provider> 
    <non-jta-data-source>DefaultDS</non-jta-data-source> 
    <properties> 
     <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/> 
     <property name="hibernate.format_sql" value="true"/> 
     <property name="hibernate.hbm2ddl.auto" value="update"/> 
    </properties> 
</persistence-unit> 

Build.scala依赖包含:

javaCore, 
javaJdbc, 
javaJpa, 
cache, 
"org.hibernate" % "hibernate-entitymanager" % "4.2.7.Final" 
+0

当你运行该项目时,你可以在控制台上看到任何'create/drop' sql? – Amogh

+0

你的数据库中有play_evolutions表吗? – Peter

+0

没有play_evolutions表。而当我运行应用程序控制台给我只有像这样的错误:** com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:加载配置后,重复'COLUMN_NAME'键**的条目'VALUE'。应用程序本身运行,但启动时出现这些错误是不可接受的 – user2545521

回答

0

随着

<property name="hibernate.hbm2ddl.auto" value="update"/> 

你告诉根据每次启动应用程序时的模式,以更新架构。如果您不会修改架构,请尝试设置要验证的值。 BTW Duplicate entry 'VALUE' for key 'COLUMN_NAME'错误提示您正在尝试在开始时进行一些插入/更新,是不是?

相关问题