은 내가 데시벨을 삭제하고 내가 필요한 모든 매개 변수를 전달하고 아래 sql.execute()
를 실행Groovy 파일에서 mongorestore 명령을 실행할 수 있습니까?
Sql sql = Sql.newInstance(dbSQLUrl, userName, password)
기존 백업 (SQL)에서 DB를 복원 그루비 스크립트,
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 파일에서 mongorestore
과 같은 Mongo 명령을 실행할 수있는 Mongo에 sql.execute()
에 해당하는 것이 있습니까? 몽고에 대한
나는 다음과 같은 코드가 있습니다/mongorestore ~/backups/first_backup/
내가이 달성 할 수있는 방법이 내 그루비 파일 내에서 다음 명령을 이제 실행해야
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()
을 거기에 포함?
, 문자열 명령에 준 것과 동일한 = "" "mongorestore의 $의 dbBackUpPath을" ""프로세스 P = command.execute(), basckup db는 생성되지 않지만 mongorestore/home/backups/test 명령 행에서 아래의 코드를 실행하면 잘 동작합니다. 테스트 DB가 복원되는 것을 볼 수 있습니다. – Sharath
'p.waitFor()'를 추가 했습니까? 그 명령이 끝나기를 기다리는 어떤 방법이 필요합니다. 디버깅하려면'p = command.execute()'다음에'println p.in.text + p.err.text'를 추가하고'mongorestore'가 어떤 것을 출력하는지보십시오. –
내 잘못 경로를 잘못 전달하는 대신/home/backups/test 대신 \ home \ backsups \ test. 지금은 잘 작동합니다. – Sharath