Code Monkey home page Code Monkey logo

Comments (7)

MrMage avatar MrMage commented on May 20, 2024

I think it would be necessary to re-implement Google's client authentication code for Cloud SQL in Swift; here's a Java example.

Note that it is already possible to connect to Cloud SQL from Kubernetes Engine, however, through the Cloud SQL Proxy sidecar. I am successfully using that approach in production.

from postgres-kit.

anthonycastelli avatar anthonycastelli commented on May 20, 2024

After doing some additional research and looking into the ruby implementation, the socket should be something like
/cloudsql/<project-id>:<sql-locaiton-id>:<sql-instance-name>

databases.add(database:
    PostgreSQLDatabase(config:
        PostgreSQLDatabaseConfig(
            hostname: Environment.get("POSTGRES_SOCKET_PATH") ?? Environment.get("POSTGRES_HOST") ?? "localhost",
            port: Int(Environment.get("POSTGRES_PORT") ?? "5432") ?? 5432,
            username: Environment.get("POSTGRES_USER") ?? "default",
            database: Environment.get("POSTGRES_DATABASE") ?? "default_database",
            password: Environment.get("POSTGRES_PASSWORD")
            )
        ),
    as: .psql)

My env variable POSTGRES_SOCKET_PATH has the socket path in the format above. According to what I have read, that is the socket that App Engine should connect to.

With the current implementation of Postgres' driver, that socket form wouldn't work, right?

from postgres-kit.

anthonycastelli avatar anthonycastelli commented on May 20, 2024

All that was needed to connect to the Postgres database was a unix socket, which I had originally thought, but I was missing the socket file at the end of the path. The full path should look like this
/cloudsql/project-id:location-id:instance-name/.s.PGSQL.5432

from postgres-kit.

MrMage avatar MrMage commented on May 20, 2024

Wow, I didn’t know that. Does App Engine auto-mount a virtual file system in that location?

Anyway, glad to hear that adding Postgres support to the driver was useful.

from postgres-kit.

anthonycastelli avatar anthonycastelli commented on May 20, 2024

The virtual file system, I'm not sure of. I assume it has something mounted there for you to gain access to.

from postgres-kit.

christopherkarani avatar christopherkarani commented on May 20, 2024

Did you ever see a similar error when trying to use the unix socket like connect(descriptor:addr:size:) failed: No such file or directory (errno: 2)

from postgres-kit.

thecoolwinter avatar thecoolwinter commented on May 20, 2024

Did you ever see a similar error when trying to use the unix socket like connect(descriptor:addr:size:) failed: No such file or directory (errno: 2)

This is the current error I'm having, has anyone had success connecting using unix sockets?

from postgres-kit.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.