3

Oracle 10g データベースでコンピューター データベース サンプルをセットアップしようとしましたが、進化スクリプトでエラーが発生しました。サンプルのplay_evolutionテーブルとCompanyテーブルを作成した後Computer、これらのデータベースにデータを配置するための進化スクリプトを作成するようにプレイから求められました。 ここに画像の説明を入力

しかし、試してみるApply this script now!と、次の結果が得られます。

2012-11-26 11:33:12,324 - [INFO] - from play in play-akka.actor.default-dispatcher-1 
database [default] connected at jdbc:oracle:thin:@10.0.2.15:1521:orcl

2012-11-26 11:33:13,166 - [ERROR] - from application in New I/O  worker #1 


! @6celgd3g6 - Internal server error, for request [GET /] ->

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$$anonfun$apply$1.apply$mcV$sp(Evolutions.scala:427) ~[play_2.9.1.jar:2.0.4]
    at play.api.db.evolutions.EvolutionsPlugin.withLock(Evolutions.scala:448) ~[play_2.9.1.jar:2.0.4]
    at play.api.db.evolutions.EvolutionsPlugin$$anonfun$onStart$1.apply(Evolutions.scala:414) ~[play_2.9.1.jar:2.0.4]
    at play.api.db.evolutions.EvolutionsPlugin$$anonfun$onStart$1.apply(Evolutions.scala:412) ~[play_2.9.1.jar:2.0.4]
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59) ~[scala-library.jar:0.11.3]
    at scala.collection.immutable.List.foreach(List.scala:45) ~[scala-library.jar:0.11.3]
    at play.api.db.evolutions.EvolutionsPlugin.onStart(Evolutions.scala:412) ~[play_2.9.1.jar:2.0.4]
    at play.api.Play$$anonfun$start$1.apply(Play.scala:60) ~[play_2.9.1.jar:2.0.4]
    at play.api.Play$$anonfun$start$1.apply(Play.scala:60) ~[play_2.9.1.jar:2.0.4]
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59) ~[scala-library.jar:0.11.3]
    at scala.collection.immutable.List.foreach(List.scala:45) ~[scala-library.jar:0.11.3]
    at play.api.Play$.start(Play.scala:60) ~[play_2.9.1.jar:2.0.4]
    at play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$3$$anonfun$1.apply(ApplicationProvider.scala:125) ~[play_2.9.1.jar:2.0.4]
    at play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$3$$anonfun$1.apply(ApplicationProvider.scala:112) ~[play_2.9.1.jar:2.0.4]
    at scala.Option.map(Option.scala:133) ~[scala-library.jar:0.11.3]
    at play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$3.apply(ApplicationProvider.scala:112) ~[play_2.9.1.jar:2.0.4]
    at play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$3.apply(ApplicationProvider.scala:110) ~[play_2.9.1.jar:2.0.4]
    at scala.Either$RightProjection.flatMap(Either.scala:277) ~[scala-library.jar:0.11.3]
    at play.core.ReloadableApplication$$anonfun$get$1.apply(ApplicationProvider.scala:110) ~[play_2.9.1.jar:2.0.4]
    at play.core.ReloadableApplication$$anonfun$get$1.apply(ApplicationProvider.scala:110) ~[play_2.9.1.jar:2.0.4]
    at akka.dispatch.Future$$anon$3.liftedTree1$1(Future.scala:195) ~[akka-actor.jar:2.0.2]
    at akka.dispatch.Future$$anon$3.run(Future.scala:194) ~[akka-actor.jar:2.0.2]
    at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:94) ~[akka-actor.jar:2.0.2]
    at akka.jsr166y.ForkJoinTask$AdaptedRunnableAction.exec(ForkJoinTask.java:1381) ~[akka-actor.jar:2.0.2]
    at akka.jsr166y.ForkJoinTask.doExec(ForkJoinTask.java:259) ~[akka-actor.jar:2.0.2]
    at akka.jsr166y.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:975) ~[akka-actor.jar:2.0.2]
    at akka.jsr166y.ForkJoinPool.runWorker(ForkJoinPool.java:1479) ~[akka-actor.jar:2.0.2]
    at akka.jsr166y.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:104) ~[akka-actor.jar:2.0.2]

アプリケーションはそのままneeds evolution pageで、テーブルはDBで空であるため、スクリプトが失敗したようです(SQLで直接Oracle 10gに試してみると、スクリプトは機能しています)。誰でも問題を解決するために私を助けることができますか?

編集1:これが私の設定ファイルです

application.name=computer-database
application.secret="E27D^[_<Lpt0vjad]de;3/i;tx3gpRmG4Byof/3nahO/dIo9gbsMWut1w3xg[>9W"

db.default.url="jdbc:oracle:thin:@10.0.2.15:1521:orcl"
db.default.driver=oracle.jdbc.driver.OracleDriver
db.default.user=play
db.default.password=play

ebean.default="models.*"

"assets.cache./public/stylesheets/bootstrap.min.css"="max-age=3600"

logger=ERROR

logger.play=INFO

logger.application=DEBUG

編集 2:サンプルの JPA バージョンを試してみました: 同様のエラーが表示されます: 同じ画面 ( Database 'default' needs evolution!) をクリックするApply this script now!と、ログ ファイルにまったく同じスタック エラーが表示されます

EDIT 3: DBをクリーンアップすると、アプリケーションは最初の進化スクリプト(テーブルとデータの構造を同時に作成する)を作成するように要求するので、それを適用することを受け入れます:彼は私のDBにテーブルを作成しますが、彼はしませんデータを挿入せず、ブロックされている 2 番目の画面を印刷してください....そして最初に、アプリケーションが play_evolution テーブルを作成しようとしたときにエラーが発生しました。グーグルで調べたところ、フィールドのタイプが間違っているため、どうやらplay_evolutionのコードがoracleで機能していないことがわかりました....だから手動で作成しました

4

2 に答える 2

0

問題はで解決されevolutionplugin=disabledapplication.confので、それは実際の解決策ではありません。だからここでチケットを作成しました

解決策を見つけるためにそれを読んでください!

于 2012-11-27T15:44:17.377 に答える
0

構成が間違っている可能性があるようです。サンプルは次のように述べています。

db.default.pass=play

それがいつあるべきか:

db.default.password=play

構成ドキュメントを参照してください。

また、念のため、データベースを完全に消去してみてください。

コメントの編集:

なんらかの理由でデータベースが (進化的に) 不安定な位置にあるようですが、ログは役に立ちません。Play 2.0.4 (最新のもの) を実行していますか?

これがサンプル プロジェクトであることを考えると、回避策でこれを解決します。

  • でコメントを外して進化を無効evolutionplugin=disabledにするapplication.conf
  • データベースでスクリプトを手動で実行する

この段階で、DB には必要なデータが含まれています。接続/データ タイプの問題がエラーの原因である場合は、アプリケーションの実行時にログに表示されますが、それ以外の場合はすべて機能するはずです。

これは深刻な問題のように思われるため、この問題についてLighthouseでチケットを発行する必要もあります。

于 2012-11-27T12:57:27.107 に答える