Apartment
multi-tenant-support
Our great sponsors
Apartment | multi-tenant-support | |
---|---|---|
5 | 5 | |
2,648 | 46 | |
0.7% | - | |
0.0 | 0.0 | |
about 2 months ago | over 1 year ago | |
Ruby | Ruby | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Apartment
-
Figma's Databases team lived to tell the scale
I recall a popular rails gem[1] once upon a time that provided multi-tenancy via postgres schemas.
As it turns out, even the company the initially developed the gem ended up ditching the approach due to some of the issues you outlined above.
Managing separate schemas feels like one of those nefarious decisions that make things simple _initially_ but get you into a world of hurt when you need to scale. The company is since defunct but they have an article where they discuss why they ditched the approach [2], TL;DR it's too difficult to maintain and scale
[1] https://github.com/influitive/apartment#tenants-on-different...
-
Is there a way to have rails return a different set of data depending on the hostname?
Looks like you're trying to implement multi-tenancy. You might also want to look at the apartment gem.
-
Create views to display all data managed by apartment gem
One strategy of the apartment gem is to store tenant data in dedicated schemas in a Postgres database.
- restart rails app from controller action
-
How we found and fixed a rare race condition in our session handling - The GitHub Blog
The other issue I think was with Apartment tenant switching and ActiveRecord's column cache. Some tenants had the updated columns and others didn't. Also with Puma. People love them some Puma! Me, I go with Passenger. Well, if the requirements are right that is...
multi-tenant-support
-
MatrixEval - A local alternative to GitHub Action/Circle CI/Travis CI matrix job. Simply run your code against different versions of dependencies.
If your code needs to integrate with other services like database. Here is another real configuration from another ruby gem - multi-tenant-support
-
Best Practices for Multitenancy for Rails 7?
I build a gem multi-tenant-support recently, which mainly focuses on data leak protection.
-
multi-tenant-support gem: Help you build a highly secure, multi-tenant rails app without data leak
By the way, I just updated the README to contain lots of details about what make multi-tenant-support difference from others. That may help.
I would love to hear your feedback about multi-tenant-support. Please let me know if you like it or not, or create an issue if it does not work as you expected.
What are some alternatives?
Acts As Tennant - Easy multi-tenancy for Rails in a shared database setup.
activerecord-multi-tenant - Rails/ActiveRecord support for distributed multi-tenant databases like Postgres+Citus
Milia - Easy multi-tenanting for Rails5 (or Rails4) + Devise
rails_or - Cleaner syntax for writing OR Query in Rails 5, 6. And also add #or support to Rails 3 and 4.
rails-multitenant
pluck_all - A more efficient way to get data from database. Like #pluck method but return array of hashes instead.
multitenant - making cross tenant data leaks a thing of the past.
SanitizeSqlLike - Backport #sanitize_sql_like method from Rails 4 for Rails 3. Sanitizes a string so that it is safe to use within an SQL LIKE statement.
matrixeval - Run your code against different versions of dependencies. Get the similar matrix jobs feature of GitHub Action, Circle CI and Travis CI on local.