Usando proteus el fallo es similar:

> config =
> config.set_trytond('postgresql://tryton:my_password_...@localhost:5432/ejemplo')
>
> /usr/local/lib/python2.7/dist-packages/proteus/config.pyc in
> set_trytond(database, user, language, password, config_file)
>     266     'Set trytond package as backend'
>     267     _CONFIG.current = TrytondConfig(database, user,
> language=language,
> --> 268         password=password, config_file=config_file)
>     269     return _CONFIG.current
>     270
>
> /usr/local/lib/python2.7/dist-packages/proteus/config.pyc in
> __init__(self, database, user, language, password, config_file)
>     219         self.pool.init()
>     220
> --> 221         with Transaction().start(self.database_name, 0) as
> transaction:
>     222             Cache.clean(database_name)
>     223             User = self.pool.get('res.user')
>
> /home/dummy/workspace/tryton-dist/trytond/trytond/transaction.pyc in
> start(self, database_name, user, readonly, context, close, autocommit)
>      82             database = Database().connect()
>      83         else:
> ---> 84             database = Database(database_name).connect()
>      85         Flavor.set(Database.flavor)
>      86         cursor = database.cursor(readonly=readonly,
>
> /home/dummy/workspace/tryton-dist/trytond/trytond/backend/sqlite/database.pyc
> in connect(self)
>     177             path = os.path.join(config.get('database',
> 'path'), db_filename)
>     178             if not os.path.isfile(path):
> --> 179                 raise IOError('Database "%s" doesn\'t exist!'
> % db_filename)
>     180         if self._conn is not None:
>     181             return self
>
> IOError: Database "ejemplo.sqlite" doesn't exist!
y siguiendo la pista al fallo veo que al parsear la uri:

/usr/local/lib/python2.7/dist-packages/proteus/config.py
>         if database:
>             uri = urlparse.urlparse(database)
>             database_name = uri.path.strip('/')
>         if not database_name:
>             database_name = os.environ['DB_NAME']
>         self.database_name = database_name
>         self._user = user
>         self.config_file = config_file
>
>         Pool.start()
>         self.pool = Pool(database_name)
>         self.pool.init()
>
>         with Transaction().start(self.database_name, 0) as transaction:

después de la línea
> uri = urlparse.urlparse(database)
uri.scheme tiene el valor correcto 'postgresql', pero no se usa antes de
ejecutar:
> Transaction().start(self.database_name, 0)
que es donde aparece el error al intentar conectar a la inexistente base
de datos sqlite.



Responder a