Using PostgreSQL with App Engine Standard

329 Views Asked by At

I trying to use postgres on app engine standard with python2.7 environment.

I use sqlalchemy + pg8000 for connection, connection string looks like:

postgresql+pg8000://user:password@/dbname?unix_sock=/cloudsql/project:us-central1:db

It works on local machine, but when I deploy it, I receive an error:

AttributeError: 'Connection' object has no attribute '_usock'

How to configure the connection to the database?

Full traceback:

Traceback (most recent call last):
  File "/base/alloc/tmpfs/dynamic_runtimes/python27g/e416f9a06334486a/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 240, in Handle
    handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
  File "/base/alloc/tmpfs/dynamic_runtimes/python27g/e416f9a06334486a/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 299, in _LoadHandler
    handler, path, err = LoadObject(self._handler)
  File "/base/alloc/tmpfs/dynamic_runtimes/python27g/e416f9a06334486a/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 85, in LoadObject
    obj = __import__(path[0])
  File "/base/data/home/apps/s~valid-song-196413/web-analytics-parser:20180926t131114.412842106933365078/main.py", line 15, in <module>
    db.engine.execute('select ')
  File "/base/data/home/apps/s~valid-song-196413/web-analytics-parser:20180926t131114.412842106933365078/lib/sqlalchemy/engine/base.py", line 2074, in execute
    connection = self.contextual_connect(close_with_result=True)
  File "/base/data/home/apps/s~valid-song-196413/web-analytics-parser:20180926t131114.412842106933365078/lib/sqlalchemy/engine/base.py", line 2123, in contextual_connect
    self._wrap_pool_connect(self.pool.connect, None),
  File "/base/data/home/apps/s~valid-song-196413/web-analytics-parser:20180926t131114.412842106933365078/lib/sqlalchemy/engine/base.py", line 2158, in _wrap_pool_connect
    return fn()
  File "/base/data/home/apps/s~valid-song-196413/web-analytics-parser:20180926t131114.412842106933365078/lib/sqlalchemy/pool.py", line 400, in connect
    return _ConnectionFairy._checkout(self)
  File "/base/data/home/apps/s~valid-song-196413/web-analytics-parser:20180926t131114.412842106933365078/lib/sqlalchemy/pool.py", line 788, in _checkout
    fairy = _ConnectionRecord.checkout(pool)
  File "/base/data/home/apps/s~valid-song-196413/web-analytics-parser:20180926t131114.412842106933365078/lib/sqlalchemy/pool.py", line 529, in checkout
    rec = pool._do_get()
  File "/base/data/home/apps/s~valid-song-196413/web-analytics-parser:20180926t131114.412842106933365078/lib/sqlalchemy/pool.py", line 1193, in _do_get
    self._dec_overflow()
  File "/base/data/home/apps/s~valid-song-196413/web-analytics-parser:20180926t131114.412842106933365078/lib/sqlalchemy/util/langhelpers.py", line 66, in __exit__
    compat.reraise(exc_type, exc_value, exc_tb)
  File "/base/data/home/apps/s~valid-song-196413/web-analytics-parser:20180926t131114.412842106933365078/lib/sqlalchemy/pool.py", line 1190, in _do_get
    return self._create_connection()
  File "/base/data/home/apps/s~valid-song-196413/web-analytics-parser:20180926t131114.412842106933365078/lib/sqlalchemy/pool.py", line 347, in _create_connection
    return _ConnectionRecord(self)
  File "/base/data/home/apps/s~valid-song-196413/web-analytics-parser:20180926t131114.412842106933365078/lib/sqlalchemy/pool.py", line 474, in __init__
    self.__connect(first_connect_check=True)
  File "/base/data/home/apps/s~valid-song-196413/web-analytics-parser:20180926t131114.412842106933365078/lib/sqlalchemy/pool.py", line 671, in __connect
    connection = pool._invoke_creator(self)
  File "/base/data/home/apps/s~valid-song-196413/web-analytics-parser:20180926t131114.412842106933365078/lib/sqlalchemy/engine/strategies.py", line 106, in connect
    return dialect.connect(*cargs, **cparams)
  File "/base/data/home/apps/s~valid-song-196413/web-analytics-parser:20180926t131114.412842106933365078/lib/sqlalchemy/engine/default.py", line 412, in connect
    return self.dbapi.connect(*cargs, **cparams)
  File "/base/data/home/apps/s~valid-song-196413/web-analytics-parser:20180926t131114.412842106933365078/lib/pg8000/__init__.py", line 112, in connect
    application_name, max_prepared_statements)
  File "/base/data/home/apps/s~valid-song-196413/web-analytics-parser:20180926t131114.412842106933365078/lib/pg8000/core.py", line 1183, in __init__
    self._usock.close()
AttributeError: 'Connection' object has no attribute '_usock'
0

There are 0 best solutions below