Grailsのdatabase-migrationについて

6 views
Skip to first unread message

k-kuwana

unread,
Jun 23, 2015, 12:09:13 PM6/23/15
to jg...@googlegroups.com
こんにちわ。桑名(@saba1024)と申します。

現在、Grails2.4.5環境にてシステムを構築しています。
開発環境は以下のとおりです。

OS:Linux
Java:1.8
メモリ:8G
CPU:Corei7
Grailsのドメイン数:93個
GrailsのdbCreate:development、product両方で記述自体をコメントアウト

この環境で、database-migrationプラグイン(1.4.0)を使ってデータベースのマイグレーション行いたいと思っているのですが、あまりにも時間がかかりすぎて困っています。

開発環境で、以下のコマンドを実行しています。
grails dbm-gorm-diff hoge.groovy -add
grails dbm-update

どちらのコマンドも実行後、すぐに”Environment set to development...”という表示がされますが、そのままCPU使用率が100%近い状態で約4分程待たなければなりません。
その後、"Starting dbm-gorm-diff"というメッセージが表示されて、約40秒程待った後、処理自体は正常に終了します。

なお、dbm-updateの場合は、さらに時間がかかります。(一つのテーブルに一つのカラムを追加しただけでも7分程待ちました)

本番環境にwarでデプロイして、自動でこの差分を適用する際には、特に問題なくささっとmigrationtoolが実行されています。

しかし、いくら開発環境とは言え4分も待つのは異常なのでは、と思います。
何かご存知のことがございましたら、ご教示いただければ幸いです。

なお、Grailsの起動(run-app)はdevelomentでもproductでも約1分程かかっています。

k-kuwana

unread,
Jun 25, 2015, 3:20:37 AM6/25/15
to jg...@googlegroups.com
今回の件、先日@nobeansさんの助言により解決出来ましたので共有いたします。

単純にJavaのヒープが足りていないことが原因だったようです。
Grailsコマンドを実行する前に

export GRAILS_OPTS="-Xmx1G -Xms256m"

と言うようにGrailsのオプションとしてメモリを指定して、その後にdbm系のコマンドを実行すれば問題ない時間で処理が実行されるようになりました。

2015年6月23日(火) 18:09 k-kuwana <saba...@gmail.com>:
Reply all
Reply to author
Forward
0 new messages