首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >应用程序崩溃后,部署Heroku发挥!框架(不存在double类型)

应用程序崩溃后,部署Heroku发挥!框架(不存在double类型)
EN

Stack Overflow用户
提问于 2015-05-20 13:48:01
回答 1查看 293关注 0票数 0

我无法通过使用Play Frmaework app数据库在Heroku上正确地部署PostgreSQL (Java)。

Procfile

web:目标/通用/阶段/bin/name -Dhttp.port=${PORT} -DapplyEvolutions.default=true -Ddb.default.driver=org.postgresql.Driver -Ddb.default.url=$DATABASE_URL

built.sbt

代码语言:javascript
复制
name := """name"""

version := "1.0-SNAPSHOT"

lazy val root = (project in file(".")).enablePlugins(PlayJava)

scalaVersion := "2.11.1"

libraryDependencies ++= Seq(
  javaJdbc,
  javaEbean,
  cache,
  javaWs
)

libraryDependencies += "org.postgresql" % "postgresql" % "9.3-1100-jdbc4"

Heroku's logs

←[36m2015-05-20T13:35:43.429517+00:00 appweb.1:←[0m @6m7pfofpb:数据库默认‘)处于不一致状态!←[36m2015-05-20T13:35:43.412967+00+00 appweb.1:←][←[31 31merror←0m play - ERROR: type "double“不存在←[36m2015-05-20T13:35:43.412974+00 appweb.1:←[0m位置: 320错误:0,])SQLSTATE:42704←[36m2015-05-20T13:35:43.428889+00:00appweb.1:←[0mOops,无法启动服务器。[36m2015-05-20T13:35:43.429771+00:00appweb.1:←[0m at play.api.db.evolutions.Evolutions$.databaseEvolutions(Evolutions.scala:367)←][36m2015-05-20T13:35:43.429822+00:00appweb.1:←[0m at play.api.db.evolutions.Evolutions$.databaseEvolutions(Evolutions.scala:367)←][36m2015-05-20T13:35:43.429871+00:00appweb.1:←].evolutions.Evolutions$$anonfun$evolutionScript$2.apply(Evolutions.scala:332)←[36m2015-05-20T13:35:43.429907+00:00appweb.1:←[0m at play.api.db.evolutions.Evolutions$$anonfun$evolutionScript$2.apply(Evolutions.scala:330)←][36m2015-05-20T13:35:43.433005+00:00appweb.1:←[0m at scala.Option.map(Option.scala:145)←][36m2015-05-20T13:35:43.433063+00:00 appweb.1:←]play.api.db.evolutions.Evolutions$.evolutionScript(Evolutions.scala:330)←0m [36m2015-05-20T13:35:43.433140+00:00appweb.1:←[0m at play.api.db.evolutions.EvolutionsPlugin$$anonfun$onStart$1$$anonfun$apply$1.apply$mcV$sp(Evolutions.scala:486)←]36m2015-05-20T13:35:43.433214+00:00appweb.1:←[0m at play.api.db.evolutions.EvolutionsPlugin.withLock(Evolutions.scala:531)←[36m2015-05- 05])play.api.db.evolutions.EvolutionsPlugin$$anonfun$onStart$1.apply(Evolutions.scala:485) 1:←[0m at 20T13:35:43.433254+00:00←[36m2015-05-20T13:35:43.433294+00:00 ]附录1:←[0m at play.api.db.evolutions.EvolutionsPlugin$$anonfun$onStart$1.apply(Evolutions.scala:483)←[36m2015-05-20T13:35:43.433333+00:00 APWeb.1:←[0m at scala.collection.immutable.List.foreach](列表)[36m2015-05-20T13:35:43.433450+00:00appweb.1: play.api.db.evolutions.EvolutionsPlugin.onStart(Evolutions.scala:483)←[36m2015-05-20T13:35:43.433528+00:00appweb.1:←[0m at play.api.Play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(Play.scala:91)←][36m2015-05-20T13:35:43.433588+00:00 appweb.1:←[0m at play.api.Play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(Play.scala:91)←][36m2015-05-20T13:35:43.433588+00:00 appweb.1:←]。api.Play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(Play.scala:91)←[36m2015-05-20T13:35:43.433638+00:00appweb.1:←[0m at scala.collection.immutable.List.foreach(List.scala:383)←]36m2015-05-20T13:35:43.433676+00:00appweb.1:←[0m at play.api.Play$$anonfun$start$1.apply$mcV$sp(Play.scala:91)←[36m2015-05-20T13:35:43.433728+00:appweb.1:←]在play.api.Play$$anonfun$start$1.apply(Play.scala:91)←[36m2015-05-20T13:35:43.433774+00:00appweb.1:←[0m at play.api.Play$$anonfun$start$1.apply(Play.scala:91)←][36m2015-05-20T13:35:43.433809+00:00appweb.1:←[0m at play.utils.Threads$.withContextClassLoader(Threads.scala:21)←]36m2015-05-20T13:35:43.433864+00:00 appweb.1:play.core.StaticApplication.(ApplicationProvider.scala:55) [0m at play.api.Play$.start(Play.scala:90)←][36m2015-05-20T13:35:43.433912+00:00appweb.1:←[0m at play.api.Play$.start←[36m2015-05-20T13:35:43.434109+00:00 appweb.1:←[0m at play.core.server.NettyServer$.createServer(NettyServer.scala:244)←[36m2015-05-20T13:35:43.434194+00:00 ]附录1: play.core.server.NettyServer$$anonfun$main$3.apply(NettyServer.scala:280)←0m[36m2015-05-20T13:35:43.434302+00:00appweb.1:←[0m at play.core.server.NettyServer$$anonfun$main$3.apply(NettyServer.scala:275)←[36m2015-05-20T13:35:43.434388+00:00 appweb.1:←[0m at scala.Option.map(Option.scala:145)←][36m2015-05-20T13:35:35:[0m at play.core.server.NettyServer$.main(NettyServer.scala:275)←[36m2015-05-20T13:35:43.434565+00:00appweb.1:←[0m at play.core.server.NettyServer.main(NettyServer.scala)←][36m2015-05-20T13:35:44.389152+00:00herokuweb.1:←[0M状态从开始崩溃到崩溃)←[36m2015-05-20T13:35:44.376937+00:00herokuweb.1:←[0m进程退出状态255 ]

我特别不明白这条日志行

00:00appweb.1:←[0m[←[31 31merror←0m play - ERROR: type "double“)不存在

当然,我的一些项目类中有一些双重属性。为什么双类型有错误?

任何不受欢迎的建议/想法:)

编辑1

下面是我使用double类型的唯一两个类。

Car

代码语言:javascript
复制
@Entity
public class Car extends Model{

    @Id
    @GeneratedValue
    private int id; 
    @ManyToOne
    @JoinColumn(name="user_fk")
    private User user; 
    private String brand; 
    private String model; 
    @Column(unique = true)
    private String licencePlate; 
    private String fuel;
    private int nbSits; 
    @Column(name = "avg_cons", columnDefinition = "REAL")
    private double avgCons; // Average consumption
    @Column(name = "co2_cons", columnDefinition = "REAL")
    private double co2Cons;
    @Column(name = "htva_price", columnDefinition = "REAL")
    private double htvaPrice; 
    @Column(name = "leasing_price", columnDefinition = "REAL")
    private double leasingPrice;
    @Column(columnDefinition = "REAL")
    private double mileage; 
    @Column(columnDefinition = "REAL")
    private boolean availability;
}

事务

代码语言:javascript
复制
@Entity
@Table(name = "transactions")
public class Transaction extends Model{

    @Id
    @GeneratedValue
    private int id; 
    @OneToOne
    @JoinColumn(name = "car_fk")
    private Car car;
    @OneToOne 
    @JoinColumn(name = "driver")
    private User driver;  
    @Column(name = "from_date")
    private Timestamp fromDate; 
    @Column(name = "to_date")
    private Timestamp toDate; 
    @Column(name = "start_mileage", columnDefinition = "REAL")
    private double startMileage; 
    @Column(name = "end_mileage", columnDefinition = "REAL")
    private double endMileage;
    @Column(columnDefinition = "REAL")
    private double avgCons; 
    private String status; 
    private boolean exchange; 
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-26 16:22:47

PostgreSQL适用于列类型双精度,并且不知道列类型double

我建议你试一试

代码语言:javascript
复制
@Column(columnDefinition = "NUMERIC")
private BigDecimal startMileage;

columnDefinition的值实际上是DDL语句的一部分,这就是为什么您应该检查1.sql以查看到底生成了什么(由Ebean生成)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30351651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档