leftovers...

about grails groovy

GrailsでSQLiteしたメモ

以下のサイトを参考にしてSQLite+Grailsとか試す。
Big Oh No: Groovy on Grails & Sqlite

ここ↓からhibernateのDialectを持ってきてビルド
http://code.google.com/p/hibernate-sqlite/

mvn eclipse:clean
mvn eclipse:eclipse

おっと。。。別にビルドしなくても、
srcディレクトリにある、SQLiteDialect.javaをそのままコピー。
src/main/java/dialect/SQLiteDialect.java

Grailsでの設定。

  • Grailsプロジェクト/grails-app/conf/BuildConfig.groovyを編集

repositoriesのmavenCentral()を有効にして、dependenciesにruntime 'org.xerial:sqlite-jdbc:3.6.17.1'を追加する。

    repositories {       
        grailsPlugins()
        grailsHome()
        mavenCentral() //これを有効にする
    }
    dependencies {
        runtime 'org.xerial:sqlite-jdbc:3.6.20' //これを追加
    }
  • データソースの設定。Grailsプロジェクト/grails-app/conf/DataSource.groovyを編集してSQLite用にする。
driverClassName = "org.sqlite.JDBC"
dialect = "dialect.SQLiteDialect"
url = "jdbc:sqlite:dev.sqlite3"

以上です。

意外と簡単。まあ、Grailsですから:-)


ちょっと、まったぁーー!これだけではつまらない!こんな簡単なメモでいいのか!



って事で。
何だか毎回SQLiteDialect.java持ってくるのもめんどうだなってことで、sqlite-dialectをローカルレポに入れる説明。・・・長くなるのでgithubに置いておきました。
githubに置いてあるので、http://github.com/tyama/sqlite-dialect 持ってくる。

git clone git@github.com:tyama/sqlite-dialect.git

そしてローカルにインストール

mvn install

これで今後はソースコードを持ってこなくても、Grailsプロジェクト/grails-app/conf/BuildConfig.groovyを以下の設定にして、

    repositories {       
        grailsPlugins()
        grailsHome()
        mavenLocal() //これを有効にする
        mavenCentral() //これを有効にする
    }
    dependencies {
        runtime 'org.xerial:sqlite-jdbc:3.6.20' //これを追加
        runtime 'sqlite-dialect:sqlite-dialect:1.0' //これを追加
    }
  • データソースの設定は、ちょっと事情があって変更で、
driverClassName = "org.sqlite.JDBC"
dialect = "org.hibernate.dialect.SQLiteDialect" // ここさっきとかえた。
url = "jdbc:sqlite:dev.sqlite3"

これで完了です。

ん、で、なんだか物足りないので、なんとなくGradleのビルドファイルも書いた。Gradle派な人専用。
おー、ステキ!

usePlugin 'java'
usePlugin 'maven'

group="sqlite-dialect"
artifactId="sqlite-dialect"
version="1.0"

dependencies {
  compile "org.hibernate:hibernate:3.2.6.ga"
  compile 'org.xerial:sqlite-jdbc:3.6.20'
}

これの実行は、

gradle install






なんでマッピングの設定のインデックスきかないんだろ?気のせいかな?
まあいいか・・・。
手動でコンソールから入ってインデックス作りました。 sqlite3 dev.sqlite3