2012-05-10 3 views
0

Есть ли API для кого-либо, кто ремонтирует mongodb, это случай поврежденных баз данных через ruby-mongodb-driver.Ремонт Mongodb с использованием ruby-mongodb-драйвера

Просматривая documentation, кажется, что не существует

может кто-нибудь подтвердить.

Или может кто-нибудь предложить мне лучший способ восстановить базу данных mongod.

в настоящее время я знал

./mongod --repair options 

./mongo 

> use [database] 
> db.repairDatabase() 

Я также вижу варианты оболочки

./mongo --help 

options: 
    --shell    run the shell after executing files 

Как я могу написать скрипт (.js), чтобы восстановить данную базу данных

+0

Я нахожу 'db.repairDatabase()' наиболее удобным. Вы не можете это сделать? –

+0

Отъезд [это] (http://stackoverflow.com/questions/8904991/mongodb-cant-connect-to-localhost-but-can-connect-to-localhosts-ip-address/8905337#8905337) ответ. – benchwarmer

+0

@ benchwarmer Я знал, что все, что я хочу, это лучший способ запуска кода из рубиновой программы, спасибо любому из способов – Viren

ответ

3

Для Монго shell, имя базы данных можно указать как необязательный аргумент. Вот сценарий оболочки, который должен сделать это ясно.

repair.sh

#!/bin/sh 
if [ $# -lt 1 ] 
then echo "$0 - repair mongodb database" 
     echo "usage: $0 database-name" 
     exit 1 
fi 
mongo $1 --eval 'printjson(db.repairDatabase())' 

Вот рубин 1,9 эквивалент.

repair.rb

#!/bin/env ruby 
require 'mongo' 
if ARGV.length < 1 
    puts "$0 - repair mongodb database" 
    puts "usage: $0 database-name" 
    exit 1 
end 
db = Mongo::Connection.new[ARGV[0]] 
puts db.command({repairDatabase: 1}) 

Там, более подробная информация в FAQ и документацию для БД.

http://api.mongodb.org/ruby/current/file.FAQ.html

http://api.mongodb.org/ruby/current/Mongo/DB.html

навигации в некоторой документации не очевидна - мы будем смотреть в сделать его лучше.

+0

Это Mongo :: Connection.new (ARGV [0]) или Mongo :: Connection.new.db (ARGV [0 ]) – Viren

+0

Либо они эквивалентны. –