Я хотел бы сделать эквивалент:
mongo --port 27xxx
use admin
db.addUser("venkman", "StayPuft!1")
Но я хотел бы сделать это как часть моего rake db:seed
.Похоже, что-то, что вы хотели бы с новой базой данных.Я думал, что какой-то вариант этого:
Mongoid.database.eval('use admin; db.addUser("venkman", "StayPuft!1")' )
справится, но мне не очень повезет с этим:
Mongo::OperationFailure: Database command '$eval' failed: (errmsg:
'compile failed: JS Error: SyntaxError: missing ; before statement nofile_a:0'; ok: '0.0').
from /home/user/.rvm/gems/ruby-1.9.2-p290/gems/mongo-1.5.2/lib/mongo/db.rb:520:in `command'
from /home/user/.rvm/gems/ruby-1.9.2-p290/gems/mongo-1.5.2/lib/mongo/db.rb:407:in `eval'
Я могу получить такую функциюработа:
irb(main):023:0> Mongoid.database.eval(' function() { return 3+3; }' )
=> 6.0
Так что, похоже, database.eval
не подходит для сценариев задач администратора БД.Разумно уверен, что эта проблема не связана с Mongoid, из стека трассировки.Есть ли что-то, что я могу использовать для создания сценария, который пользователь создает как часть моего rake db:seed
?