5

データベース移行にdatabase-migrationgrailsプラグインを使用したい。Grailsアプリを初めて起動すると、すべてのデータベーステーブルが自動的に作成されます。DataSource.groovyの本番設定は次のとおりです。

production {


    dataSource {
        dbCreate = "update"
        url = "jdbc:mysql://localhost/myapp?useUnicode=yes&characterEncoding=UTF-8"
        username = "test"
        password = "test"
        dialect = org.hibernate.dialect.MySQL5InnoDBDialect
        properties {
           validationQuery = "select 1"
           testWhileIdle = true
           timeBetweenEvictionRunsMillis = 60000
        }
    }
}

私のconfig.groovyで、次のように設定しました。

grails.plugin.databasemigration.updateOnStart = true
grails.plugin.databasemigration.updateOnStartFileNames = ['changelog.groovy']

ドメインクラスにプロパティを追加するときは、変更ログファイルを調整する必要があります。この場合、データベースの移行を行うための最良の方法は何ですか?列を追加または削除するときに実行する必要がある手順は何ですか?

4

4 に答える 4

1

私の問題の解決策を説明する非常に優れたチュートリアルを見つけました。

Grails Db 移行チュートリアル

于 2012-12-21T18:55:05.703 に答える
1

私が使用するアプローチは、適切に設定されたマッピング (非常に重要です!)を使用して、すべてのテーブルを Grails ドメインに移行することです。

次に、最初に Grails を残してデータベースを作成し、移行するデータベースの以前のバックアップを入力します。

この後、起動するたびにデータベースを更新するように Grails 構成を設定します。

少し面倒に思えるかもしれませんが、もし私がそうしなければならないとしたら、私はこのようにするでしょう。

それが役に立てば幸い :)

于 2012-12-21T15:15:23.663 に答える
0

ワークフローは次の手順で構成されます。

1) コマンドを使用してプラグインをインストールします。 grails install-plugin database-migration

2) プラグインをセットアップしたら、次のコマンドを実行します。

grails dbm-generate-gorm-changelog changelog.groovy or changelog.xml

デフォルトでは、場所 grails-app/migrations/changelog.groovy または .xml にファイルを生成します

3) セットdataSource dbcreate='none'

3)今、実行します

grails dbm-changelog-sync

これにより、テーブル名 databasechangelog が作成され、既存のスキーマに従ってエントリが挿入されます。

それでおしまい。

于 2013-10-09T17:08:40.083 に答える