RatchetWrench is a easily use Google Cloud Spanner by Elixir.
** This library production use in the mobile game. But does not fully support the "Google Cloud spanner" feature. **
If available in Hex, the package can be installed
by adding ratchet_wrench
to your list of dependencies in mix.exs
:
def deps do
[
{:ratchet_wrench, "~> 0.4.0"}
]
end
Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/ratchet_wrench.
Add GCP credentials json file path for env GOOGLE_APPLICATION_CREDENTIALS
.
more detail's for goth.
Set database.
Add env RATCHET_WRENCH_DATABASE
.
ex) "projects/projectname-123456/instances/your-instance/databases/your-db"
export RATCHET_WRENCH_DATABASE="projects/projectname-123456/instances/your-instance/databases/your-db"
or
Add config.exs
config :ratchet_wrench, database: "projects/projectname-123456/instances/your-instance/databases/your-db"
You must replace projectname-123456
, your-instance
, your-db
.
Output for Logger module.
Add env RATCHET_WRENCH_ENABLE_LOGGING
export RATCHET_WRENCH_ENABLE_LOGGING=1
or
Add config.exs
config :ratchet_wrench, enable_logging: true
I recommend using wrench.
Sorry, will write sample more codes.
- How to define model(Table) ->
test/test_helper.exs
- How to SELECT/INSERT/UPDATE ->
test/ratchet_wrench/repo_test.exs
Your application.ex write to example.
def start(_type, _args) do
children = [
...
{RatchetWrench.SessionPool, %RatchetWrench.Pool{}}
]
...
end
Cleanup session in Google Cloud Spanner at shutdown your app.
Process.send(RatchetWrench.SessionPool, :kill, [])
- STRING
- DATE
- BOOL
- INT64
- FLOAT64
- TIMESTAMP
Unsupport types
- ARRAY
- BYTES
- STRUCT