SpannerEcto
How to use the Google Spanner Library
scopes = [
"https://www.googleapis.com/auth/spanner.admin",
"https://www.googleapis.com/auth/spanner.data"
]
instance = "projects/epuu-293412/instances/epuu"
{:ok, goth_token} = scopes |> Enum.join(" ") |> Goth.Token.for_scope()
client = GoogleApi.Spanner.V1.Connection.new(goth_token.token)
{:ok, session} = GoogleApi.Spanner.V1.Api.Projects.spanner_projects_instances_databases_sessions_create(client, "#{instance}/databases/epuu_production")
query = %GoogleApi.Spanner.V1.Model.ExecuteSqlRequest{sql: "SELECT * FROM Countries"}
{:ok, result_set} = GoogleApi.Spanner.V1.Api.Projects.spanner_projects_instances_databases_sessions_execute_sql(client, session.name,body: query)
How to use SpannerEcto.Proxy
{:ok, pid} = SpannerEcto.Proxy.start_link(project: "epuu-293412", instance: "epuu", database: "epuu_production")
SpannerEcto.Proxy.query(pid, "SELECT * FROM Countries")
SpannerEcto.Proxy.stop(pid)
How to use DBConnection
{:ok, conn} = DBConnection.start_link(SpannerEcto.Protocol, project: "epuu-293412", instance: "epuu", database: "epuu_production")
DBConnection.execute(conn, %SpannerEcto.Query{statement: "SELECT * FROM Countries"}, [])
How to use the Ecto Adapter
SpannerEctoTest.Repo.all(SpannerEctoTest.Country)