0

データベースを削除し、既存のバックアップ (SQL) からデータベースを復元する groovy スクリプトがあります。

Sql sql = Sql.newInstance(dbSQLUrl, userName, password) 

必要なすべてのパラメーターを渡し、sql.execute()以下のように実行しました。

sql.execute(
        alter database dbName
        set offline with rollback immediate
        drop database dbName
       )


sql.execute(
    RESTORE DATABASE dbName
    FROM disk = 'C:\Backups'
    WITH REPLACE
)

上記のコードはすべて問題なく動作します。これを MongoDB にも実装する必要があります。groovy ファイルsql.execute()のように Mongo コマンドを実行できる Mongo に相当するものはありますか。mongorestore

Mongo の場合、次のコードがあります。

List credentials = []
List servers = []

credentials.push(MongoCredential.createCredential(mongoUserName, mongoDBName, mongoPassword as char[]))
servers.push(new ServerAddress(mongoHost, mongoPort))

GMongoClient mongoClient = new GMongoClient(servers,credentials)
DB mongoDB = mongoClient.getDB(mongoDBName)
mongoDB.dropDatabase()

次に、groovy ファイル内で次のコマンドを実行/インクルードする必要があります。 mongorestore ~/backups/first_backup/

これを達成する方法はありますか?

4

2 に答える 2

0

つまり、これは MongoDB ドライバーを使用して実現することはできません。これらのコマンドは、コマンド ライン (つまり、MongoDB シェル) からのみ呼び出すことができます。日付を CSV としてエクスポートし、データをプログラムで MongoDB にインポートする必要がある場合がありますが、これは非常に時間がかかります。

それ以外の場合は、Groovy ライブラリを使用してコマンドを実行する必要がある場合があります。以下の Java コマンドに似ています。

Runtime.getRuntime().exec("mongoimport -d -h <>..");

Javaドライバーに関する同様の質問

于 2016-08-11T15:30:00.510 に答える