2017-08-04 1 views
0

私は、H2ファイルベースのデータベースを使用して、小さなGrails 3.3.0アプリケーションを実行しています。私はH2特定SCRIPTコマンドを使用してファイルに現在のデータベースの状態をダンプしたいと思い、簡単なバックアップの理由:Grails 3.3 H2スクリプトコマンドを実行

SCRIPT TO /path/to/backup/dir/tempoDb.sql; 

現在、私はこのようなネイティブSQLコマンドを実行しようとしています。

しかし、これは機能しません。

+0

回答として追加されました –

答えて

1

dataSourceをautowireし、データソースから取得した接続を使用してSQLクエリを実行しようとすると、Hibernateを経由しないでください。 dataSource BeanはGrails Springコンテキストに登録され、javax.sql.DataSourceのインスタンスです。

次は、現在のH2データベースをファイルシステムにバックアップするGrailsサービスの例です。

@ReadOnly 
class BackupService { 

    DataSource dataSource 

    def backup() { 

     def sql = "SCRIPT DROP TO '${System.properties['java.io.tmpdir']}/backup.sql'" 

     Statement statement = dataSource.connection.createStatement() 
     boolean result = statement.execute(sql) 
    } 
} 
関連する問題