Our module supports up to 4 different ways of handling and distributing tenants’ data. Preference depends on resource availability and your growth expectations.
1. Shared Database i.e Single database with all tenants
Use the current active database for all tenants. This scheme is very suitable for shared hosting and or Cpanel.
Before version 0.0.7, packages using the shared database option had all tenants on the single database sharing the same tables.
From version 0.0.7, each tenants on shared database now have own separate tables ensuring higher level of data isolation. Although they are using shared database, but the data are not mixed making it more secure especially when running on shared host environment.

2. Single Database Single Tenant
This requires that your Perfex CRM database user has the privilege to create a new database on the fly. In this scheme, a database is created for each instance and will mostly work on VPS.
It also works on cPanel after integrating cPanel settings from SaaS > Settings > Integration (tab)

3. Single Database Single Tenant from the provided pool.
Use a single database scheme for each company instance from the pool only. Customers won’t be able to subscribe to this package when the provided databases are exhausted.
It takes from the pool and assigns a database to a tenant. This is very useful when running on a shared host like Cpanel and still wanting to use a single database for each tenant on some special packages. You can add unlimited numbers of databases
Ensure the database you are trying to connect allows remote connection when connecting to remote databases (i.e database on another host)

4. Distribute companies’ data among the provided databases in the pool – Sharding
Companies’ data will be distributed randomly among the provided database. This shares the tenants’ data across the provided database.
This option is also scalable and suitable for any type of hosting.


Creating company from dump can only be allowed in any of the single database scheme. Admin can create from dump file for the customer on any package
Ensure the database you are trying to connect allows remote connection when connecting to remote databases (i.e database on another host)
It’s essential you have a very solid backup system for your databases to ensure high availability and rollback in case of an accident. We advise using cloud databases as much as possible.