0

我剛剛將我的Heroku數據庫從Hobby dev計劃升級到Standard 0計劃。關於插入數據,我的應用程序在Hobby Dev計劃上工作得很好。我將DATABASE_URL更改爲新的DATABASE_URL。我收到了正確的憑證,我通過將其打印出來進行了驗證。新行雖然沒有被插入到數據庫中。有沒有人經歷過這樣的事情?升級數據庫後應用程序無法在Heroku上工作

讓我知道如果有我可以提供幫助您

編輯的詳細數據的其他數據:

override def database: DatabaseDef = { 
     println("CREATING DATABASE FROM URL") 
     val dbUri = new URI(System.getenv("DATABASE_URL")) 
     val username = dbUri.getUserInfo.split(":")(0) 
     println("Username: " + username) 
     val password = dbUri.getUserInfo.split(":")(1) 
     println("password " + password) 
     val dbUrl = "jdbc:postgresql://" + dbUri.getHost + dbUri.getPath 
     println("url " + dbUrl) 
     JdbcBackend.Database.forURL(dbUrl, username, password, null, "org.postgresql.Driver") 
    } 
    } 

這是我嘗試使用連接到我的數據源的方法,當我在Hobby Dev postgres計劃中時,它工作。我能看到的唯一區別是,Hobby Dev是Postgres的9.3.5Standard 0計劃9.3.6

編輯2:

我現在用的打法,光滑的依賴,這Postgres的依賴性:

"com.typesafe.play" %% "play-slick" % "0.8.1", 
    "org.postgresql"  % "postgresql"  % "9.4-1200-jdbc41" withSources() withJavadoc() 
+0

您是否缺少端口? 'dbUrl'在println中看起來像什麼? – eodgooch 2015-02-13 16:11:22

回答

3

您的連接設置不包括設置端口,並且極有可能在您的s0計劃中,它不是5432.

從DATABASE_U解析出端口RL並將其傳遞給jdbc,但是完成了。

0

意思是對的。這應該是這樣的:

def getConnection(): Connection = { 
    val dbUri = new URI(System.getenv("DATABASE_URL")) 
    val username = dbUri.getUserInfo.split(":")(0) 
    val password = dbUri.getUserInfo.split(":")(1) 
    val dbUrl = s"jdbc:postgresql://${dbUri.getHost}:${dbUri.getPort}${dbUri.getPath}" 
    DriverManager.getConnection(dbUrl, username, password) 
} 
相關問題