【问题标题】:Play Framework Database Script doesn't working- SQL Server 2008Play Framework 数据库脚本不起作用 - SQL Server 2008
【发布时间】:2015-03-19 17:40:57
【问题描述】:

我正在尝试使用带有 SQL Server 2008 的 Play Framework 创建一个应用程序。这是我的 Application.conf 文件:

db.default.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver db.default.url="jdbc:sqlserver://localhost:1433;databaseName=DBTestPlay" db.default.user=sa db.default.password="xxyyzz"

在浏览器中点击 urllocalhost:9000 后,出现以下“Database 'default' needs evolution!”页面,点击“Apply this script now”按钮后,没有任何反应。控制台显示“! @6h0n9oh2m - Internal server error, for (GET) [/] ->

这是我的模型类

package models;

import javax.persistence.Entity;  
import javax.persistence.Id; 
import javax.persistence.Table;
import play.db.ebean.Model;

@Entity  
@Table(name="t_TestUser")  
public class DBUser extends Model{      
      @Id   
      public Long id;   
      public String name;

}

谁能帮我解决这个错误?任何建议都非常感谢蚂蚁提前感谢。

N.B:我也尝试过“net.sourceforge.jtds”驱动程序,但仍然没有运气。我试图手动应用脚本。该表在我的数据库中成功生成。但是,他们仍然要求应用脚本。

【问题讨论】:

    标签: sql-server-2008 jdbc playframework-2.0


    【解决方案1】:

    我偶然发现了同样的问题,解决方法是删除 play_evolution 表并使用 datetime 数据类型而不是“applied_at”字段的时间戳重新创建它,如 here 中所述

    sql 如下所示

    create table play_evolutions (
                        id int not null primary key, hash varchar(255) not null, 
                        applied_at datetime not null, 
                        apply_script text, 
                        revert_script text, 
                        state varchar(255), 
                        last_problem text
                    )
    

    之后,进化脚本就可以正常工作了。

    【讨论】:

      【解决方案2】:

      该错误实际上证明驱动程序正在工作。我不知道为什么脚本不会在至少给你一个错误的情况下运行。

      如果您在 application.conf 中使用 applyEvolutions.default=true 启动应用程序,您能看到会发生什么吗?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多