Beispiel #1
0
 def sync(self, app=None):
     """Sync the local views with CouchDB server."""
     app = app or self.app
     if app is None:
         return  #XXX
     local_path = app.config.get('COUCHDB_VIEWS')
     design_path = os.path.join(app.root_path, local_path)
     loader = FileSystemDocsLoader(design_path)
     loader.sync(app.extensions['couchdbkit'].db)
Beispiel #2
0
    def handle(self, *args, **options):
        for dbname in ('couchflow', 'couchauth',
                 'couchsessions', 'circulation'):
            db  = get_db(dbname)
            path = settings.PROJECT_PATH + '/apps/'+dbname+'/_design/' 
            loader = FileSystemDocsLoader(path)
            loader.sync(db)

            sys.stdout.write('Successfully updated "%s"\n' % dbname)
Beispiel #3
0
def couch_sync():
    couch_db = couch.init(app.config)
    path = os.getcwd()
    path = path.replace('/manage.py', '')
    if not path:
        return "You must provide the path to PonyExpress"
    dir = '%s/ponyexpress/_design' % path
    print("Syncronizing Couchdb Views from %s" % dir)
    loader = FileSystemDocsLoader(dir)
    loader.sync(couch_db, verbose=True)
Beispiel #4
0
 def load_views(self, lp):
     self.loadpath = lp
     try:
         print "Loading design docs from %s" % lp
         loader = FileSystemDocsLoader(self.loadpath)
         loader.sync(self.db, verbose=True)
         print "Design docs loaded"
         return 0
     except:
         log.fatal("Document load path not found: %s" % lp)
         raise exceptions.VogelerPersistenceException()
Beispiel #5
0
from couchdbkit.loaders import FileSystemDocsLoader
from couchdbkit import Server, Database
import sys, os

path_to_design = sys.argv[1]
uri = sys.argv[2]
dbname = sys.argv[3]
print 'upload views from directory root:\t%s \t to db:\t%s/%s' % (
    path_to_design, uri, dbname)
server = Server(uri)
db = server.get_or_create_db(dbname)

loader = FileSystemDocsLoader(path_to_design)
loader.sync(db, verbose=True)
Beispiel #6
0
if __name__ == '__main__':
    fname = sys.argv[1]
    uri = sys.argv[2]
    dbname = sys.argv[3]

    print 'Upload contents of %s to %s/%s' % (fname, uri, dbname)
    if (fname.endswith('.gz')):
        fname = gunzip(fname)

    # #connect to the db
    cloudant = Server(uri)
    db = cloudant.get_or_create_db(dbname)
    print db.info()

    #sync the views for prebuilt indices
    loader = FileSystemDocsLoader('_design/')
    loader.sync(db, verbose=True)

    #loop on file for upload
    reader = DictReader(open(fname), delimiter='|')

    #used for bulk uploading
    docs = list()
    checkpoint = 1000
    n = 0
    start = time.time()

    for doc in reader:
        n += 1
        docs.append(doc)
        if (len(docs) % checkpoint == 0):
Beispiel #7
0
        return self.name or u''


# You don't need a try/except. This is just to allow to run FA's tests without
# couchdb installed. Btw this have to be in another place in your app. eg: you
# don't need to sync views each time the controller is loaded.
try:
    server = Server()
    if server: pass
except:
    server = None
else:
    db = server.get_or_create_db('formalchemy_test')

    design_docs = os.path.join(os.path.dirname(pylonsapp.__file__), '_design')
    loader = FileSystemDocsLoader(design_docs)
    loader.sync(db, verbose=True)

    contain(db, Pet, Person)


class CouchdbController(BaseController):

    # override default classes to use couchdb fieldsets
    FieldSet = couchdb.FieldSet
    Grid = couchdb.Grid
    model = [Person, Pet]

    def Session(self):
        """return a formalchemy.ext.couchdb.Session"""
        return couchdb.Session(db)
def sync_ddocs(dburl):
    auth_filters = get_credentials()
    db = Database(dburl, filters=auth_filters)

    loader = FileSystemDocsLoader('_design')
    loader.sync(db, verbose=True)
Beispiel #9
0
 def sync(self):
     """Sync the local views with CouchDB server."""
     local_path = self.app.config.get('COUCHDB_VIEWS')
     design_path = os.path.join(self.app.root_path, local_path)
     loader = FileSystemDocsLoader(design_path)
     loader.sync(self.db)