I am trying to configure the postgres database on heroku through the play framework application, but I keep getting an error message regarding my DATABASE_URL.
Stack Trace: -
-----> Heroku receiving push
-----> Play 2.0 - Java app detected
-----> Running: sbt clean compile stage
Getting net.java.dev.jna jna 3.2.3 ...
:: retrieving :: org.scala-sbt
confs: [default]
1 artifacts copied, 0 already retrieved (838kB/25ms)
Getting org.scala-tools.sbt sbt_2.9.1 0.11.2 ...
:: retrieving :: org.scala-sbt
confs: [default]
37 artifacts copied, 0 already retrieved (7324kB/78ms)
Getting Scala 2.9.1 (for sbt)...
:: retrieving :: org.scala-sbt
confs: [default]
4 artifacts copied, 0 already retrieved (19939kB/188ms)
[info] Loading global plugins from /tmp/build_hdhsg4dgyxy/.sbt_home/.sbt/plugins
[info] Updating {file:/tmp/build_hdhsg4dgyxy/.sbt_home/.sbt/plugins/}default-05c586...
[info] Resolving org.scala-tools.sbt
[info] Resolving org.scala-tools.sbt
[info] Resolving org.scala-tools.sbt
[info] Resolving org.scala-tools.sbt
[info] Resolving org.scala-tools.sbt
[info] Resolving org.scala-tools.sbt
[info] Resolving org.scala-lang
[info] Resolving org.scala-tools.sbt
[info] Resolving org.scala-tools.sbt
[info] Resolving org.scala-tools.sbt
[info] Resolving org.scala-tools.sbt
[info] Resolving org.scala-tools.sbt
[info] Resolving org.scala-lang
[info] Resolving org.scala-tools.sbt
[info] Resolving org.scala-tools.sbt
[info] Resolving org.scala-tools.sbt
[info] Resolving org.scala-tools.sbt
[info] Resolving org.scala-tools.sbinary
[info] Resolving org.scala-tools.sbt
[info] Resolving org.scala-tools.sbt
[info] Resolving org.apache.ivy
[info] Resolving com.jcraft
[info] Resolving commons-httpclient
[info] Resolving commons-logging
[info] Resolving commons-codec
[info] Resolving org.scala-tools.sbt
[info] Resolving jline
[info] Resolving org.scala-tools.sbt
[info] Resolving org.scala-tools.sbt
[info] Resolving org.scala-tools.sbt
[info] Resolving org.scala-tools.sbt
[info] Resolving org.scala-tools.sbt
[info] Resolving org.scala-tools.sbt
[info] Resolving org.scala-tools.testing
[info] Resolving org.scala-tools.sbt
[info] Resolving org.scala-tools.sbt
[info] Resolving org.scala-tools.sbt
[info] Resolving org.scala-tools.sbt
[info] Done updating.
[info] Compiling 1 Scala source to /tmp/build_hdhsg4dgyxy/.sbt_home/.sbt/plugins/target/scala-2.9.1/sbt-0.11.2/classes...
[info] Loading project definition from /tmp/build_hdhsg4dgyxy/project
[info] Set current project to PostDemo (in build file:/tmp/build_hdhsg4dgyxy/)
[success] Total time: 0 s, completed Jun 28, 2012 2:20:47 AM
[info] Updating {file:/tmp/build_hdhsg4dgyxy/}PostDemo...
[info] downloading http://repo.typesafe.com/typesafe/releases/postgresql/postgresql/9.1-901.jdbc4/postgresql-9.1-901.jdbc4.jar ...
[info] [SUCCESSFUL ] postgresql
[info] Done updating.
[info] Compiling 4 Scala sources and 4 Java sources to /tmp/build_hdhsg4dgyxy/target/scala-2.9.1/classes...
[error] {file:/tmp/build_hdhsg4dgyxy/}PostDemo/compile:compile: com.typesafe.config.ConfigException$UnresolvedSubstitution: conf/application.conf: 37: Could not resolve substitution to a value: ${DATABASE_URL}
[error] Total time: 10 s, completed Jun 28, 2012 2:20:57 AM
! Failed to build app with sbt
! Heroku push rejected, failed to compile Play 2.0 - java app
error: failed to push some refs to 'git@heroku.com.git'
I set my DATABASE_URL as an environment variable using the following command: -
echo "export DATABASE_URL=postgres://postgres:1234@localhost/Play">>.bash_profile
. .bash_profile
I tried setting another url that I found using the command heroku configI found out is the big long postgres url, but it doesn’t work the same as all other exceptions that occur every time.
Here is what I added to my application.conf file
%prod.db=${DATABASE_URL}
Dependence
val appDependencies = Seq(
"postgresql" % "postgresql" % "9.1-901.jdbc4"
)
, DATABASE_URL. . URL? application.conf , bash?
.
2012-06-28 20:38:18,500 - [INFO] - from play in main
Listening for HTTP on port 9000...
2012-06-28 20:38:25,862 - [INFO] - from play in play-akka.actor.default-dispatcher-1
database [default] connected at jdbc:postgresql://localhost/Play
2012-06-28 20:38:27,470 - [ERROR] - from application in New I/O server worker
! @6aoffk4jk - Internal server error, for request [GET /login/?username=abc&&password=abc] ->
play.api.db.evolutions.InvalidDatabaseRevision: Database 'default' needs evolution! [An SQL script need to be run on your database.]
at play.api.db.evolutions.EvolutionsPlugin$$anonfun$onStart$1.apply(Evolutions.scala:424) ~[play_2.9.1.jar:2.0.1]
at play.api.db.evolutions.EvolutionsPlugin$$anonfun$onStart$1.apply(Evolutions.scala:410) ~[play_2.9.1.jar:2.0.1]
at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59) ~[scala-library.jar:0.11.2]
at scala.collection.immutable.List.foreach(List.scala:45) ~[scala-library.jar:0.11.2]
at play.api.db.evolutions.EvolutionsPlugin.onStart(Evolutions.scala:410) ~[play_2.9.1.jar:2.0.1]
at play.api.Play$$anonfun$start$1.apply(Play.scala:60) ~[play_2.9.1.jar:2.0.1]
at play.api.Play$$anonfun$start$1.apply(Play.scala:60) ~[play_2.9.1.jar:2.0.1]
at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59) ~[scala-library.jar:0.11.2]
at scala.collection.immutable.List.foreach(List.scala:45) ~[scala-library.jar:0.11.2]
at play.api.Play$.start(Play.scala:60) ~[play_2.9.1.jar:2.0.1]
at play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$3$$anonfun$1.apply(ApplicationProvider.scala:125) ~[play_2.9.1.jar:2.0.1]
at play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$3$$anonfun$1.apply(ApplicationProvider.scala:112) ~[play_2.9.1.jar:2.0.1]
at scala.Option.map(Option.scala:133) ~[scala-library.jar:0.11.2]
at play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$3.apply(ApplicationProvider.scala:112) ~[play_2.9.1.jar:2.0.1]
at play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$3.apply(ApplicationProvider.scala:110) ~[play_2.9.1.jar:2.0.1]
at scala.Either$RightProjection.flatMap(Either.scala:277) ~[scala-library.jar:0.11.2]
at play.core.ReloadableApplication$$anonfun$get$1.apply(ApplicationProvider.scala:110) ~[play_2.9.1.jar:2.0.1]
at play.core.ReloadableApplication$$anonfun$get$1.apply(ApplicationProvider.scala:110) ~[play_2.9.1.jar:2.0.1]
at akka.dispatch.Future$$anon$3.liftedTree1$1(Future.scala:195) ~[akka-actor.jar:2.0.1]
at akka.dispatch.Future$$anon$3.run(Future.scala:194) ~[akka-actor.jar:2.0.1]
at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:83) ~[akka-actor.jar:2.0.1]
at akka.jsr166y.ForkJoinTask$AdaptedRunnableAction.exec(ForkJoinTask.java:1381) ~[akka-actor.jar:2.0.1]
at akka.jsr166y.ForkJoinTask.doExec(ForkJoinTask.java:259) ~[akka-actor.jar:2.0.1]
at akka.jsr166y.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:974) ~[akka-actor.jar:2.0.1]
at akka.jsr166y.ForkJoinPool.runWorker(ForkJoinPool.java:1478) ~[akka-actor.jar:2.0.1]
at akka.jsr166y.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:104) ~[akka-actor.jar:2.0.1]
2012-06-28 20:38:30,150 - [WARN] - from play in New I/O server worker
Applying evolution script for database 'default':
delete from admins;
delete from employees;
insert into admins (username, password) values ('abc', 'abc');
insert into admins (username, password) values ('abc', 'abc');
insert into employees (id,name,email) values (1, 'Super Man', 'superman@superhero.com');
insert into employees (id,name,email) values (2, 'Bat man', 'batman@superhero.com');
insert into employees (id,name,email) values (3, 'Spider Man', 'spidy@superhero.com');
insert into employees (id,name,email) values (4, 'Iron Man', 'ironman@superhero.com');
2012-06-28 20:38:30,741 - [INFO] - from play in play-akka.actor.default-dispatcher-1
database [default] connected at jdbc:postgresql://localhost/Play
2012-06-28 20:38:31,519 - [INFO] - from play in play-akka.actor.default-dispatcher-1
Application started (Dev)