summaryrefslogtreecommitdiff
path: root/lib/tapicero/user_database.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/tapicero/user_database.rb')
-rw-r--r--lib/tapicero/user_database.rb8
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/tapicero/user_database.rb b/lib/tapicero/user_database.rb
index 6daccf3..26d013d 100644
--- a/lib/tapicero/user_database.rb
+++ b/lib/tapicero/user_database.rb
@@ -35,8 +35,9 @@ module Tapicero
end
def upload_design_doc(file)
+ old = CouchRest.get design_url(file.basename('.json'))
+ rescue RestClient::ResourceNotFound
CouchRest.put design_url(file.basename('.json')), JSON.parse(file.read)
- rescue RestClient::Conflict
end
@@ -53,7 +54,9 @@ module Tapicero
protected
def create_db
- db.create! || db.info
+ db.info # test if db exists
+ rescue RestClient::ResourceNotFound
+ couch.create_db(db.name)
end
def delete_db
@@ -66,6 +69,7 @@ module Tapicero
Tapicero.logger.debug "#{action} #{db.name}"
yield
rescue RestClient::Exception => exc
+ raise exc if Tapicero::RERAISE
if second_try
log_error "#{action} #{db.name} failed twice due to:", exc
else