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"}
]
endDocumentation 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=1or
Add config.exs
config :ratchet_wrench, enable_logging: trueI 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{}}
]
...
endCleanup 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