2009-08-27 4 views
22

私はXMLファイルからデータを読み込み、rssフィードをrome経由で配信するGrailsアプリケーションを持っています。私はドメインクラスを持っていないし、私のアプリケーションにはデータソースがありません。私はアプリケーションがそれを必要としないときに、Grailsがメモリ内のhsql dbをロードしないようにします。 DataSource.groovyファイルを削除すると、Webアプリケーションを起動することができません。データソースは必須ですが、アプリケーションにデータソースが必要ない場合は何もできますか?データソースなしでGrailsを設定できますか?

答えて

19

次の手順は、データソースを使用せずに実行するために、新たなアプリ(Grailsの1.1.1)のために働く:少なくともバージョン1.1(上の既存のアプリについて

grails create-app nodb 
cd nodb 
grails uninstall-plugin hibernate 
rm grails-app/conf/DataSource.groovy 
grails create-controller Foo 
<add "render "hi bar" to the index closure of ./grails-app/controllers/FooController.groovy> 
grails run-app 
http://localhost:8080/nodb/foo - prints hi bar 

は休止状態がプラグイン作ったときには、だと思います)DataSource.groovyファイルをアンインストールしてプラグインを削除するだけで済みます。

4

メモリ内のデータベースは非常に軽量ですので、実際のデータベースが必要ない場合はそれに固執する必要があります。

+2

同様の問題が発生しました。デフォルトのデータソース設定で同じtomcatインスタンスに複数のgrailsアプリケーションをデプロイすることはできません。これは、hSQLインスタンスがディスクロックファイルなどで同じものを使用しているからです。 – Gennadiy

+2

ええ、デフォルトの本番データソースはhqlファイルのデータストアを使用します。 2つ以上のgrailsアプリケーションに同じファイル名を使用することはできません。そのため、データソース内のデータベース名を変更する必要があります。それはかなり迷惑です。データソースを持たないのは依然として望ましいことです。たとえ軽量であっても、それを使うつもりがなければ、なぜそれがあるのでしょうか。 –

5

私はデータソースをコメントアウトし、デフォルトのgrailsアプリを実行することができました。私はまた、「Grailsの休止・プラグインをアンインストールする」と、まだデフォルトアプリの実行を持って使用してプラグイン休止状態を削除することができたdatasource.groovy


/* development { 
     dataSource { 
      dbCreate = "create-drop" // one of 'create', 'create-drop','update' 
      url = "jdbc:hsqldb:mem:devDB" 
     } 
    }*/ 

に次のコードをコメントアウト同じように、あなたの生産セクションをコメントアウト。私はこれで広範なテストを行っていないが、うまくいけば、これはあなたのために働く。

2

これは良いガイドです:http://digitalbreed.com/2011/using-grails-without-a-database

は、GrailsのHibernateのプラグインを削除します。

  1. Grailsは
  2. が明示的に非トランザクションなどのサービスを宣言するデータソース設定ファイルのconf/DataSource.groovy
  3. を削除休止状態、アンインストールしたプラグイン。デフォルトはtrueで、クラスメソッドはプロキシされますが、Hibernateプラグインがなければトランザクションマネージャはなく、デプロイメントは失敗します。

    クラスSomeServiceあなたが検証を必要とする場合は特に代わりにドメインオブジェクトの{ 静的なトランザクション= falseを // ...}

  4. 使用コマンドオブジェクト、。

関連する問題