Skip to content

NOT READY YET - This horribly ugly PR let you set the prefix/tenant in the process dictionary. Then, if no prefix has been specified, it'll check this dictionary as a last resort.#16

Open
jeffdeville wants to merge 4 commits intomasterfrom
prefix-storage-in-process

Conversation

@jeffdeville
Copy link
Contributor

@jeffdeville jeffdeville commented Nov 2, 2017

For the moment this code is very ugly, but the specs are thorough.

Example:

Add the process_prefix_key to your repo definition

defmodule Tenantex.Test.ProcessTenantedRepo do
use Tenantex.Repo,
repo: Ecto.TestRepo,
process_prefix_key: "TENANTEX_PREFIX",
untenanted: [Tag]
end

Set it elsewhere in your process. (In phoenix, I'd recommend using a plug)

Process.put("TENANTEX_PREFIX", "test")

Use the repo now without having to set the prefix value yourself. The default tenant prefix will be added automatically, if needed.

ProcessTenantedRepo.insert(Note, %{text: "Note text})

… Elegant will come shortly

- Allows setting the prefix in the Process dictionary
- Alters tests to also mock out the underlying database, so I can try and mock out precisely the args being passed down to 'real' Ecto. Hopefully, getting this right and adhering to their interface will allow every adapter below it to work seamlessly.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant