diff --git a/backend/src/main/java/com/magistr/app/config/tenant/TenantDataSourceConfig.java b/backend/src/main/java/com/magistr/app/config/tenant/TenantDataSourceConfig.java index c061f48..2fe64c9 100644 --- a/backend/src/main/java/com/magistr/app/config/tenant/TenantDataSourceConfig.java +++ b/backend/src/main/java/com/magistr/app/config/tenant/TenantDataSourceConfig.java @@ -103,6 +103,7 @@ public class TenantDataSourceConfig implements WebMvcConfigurer { HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter(); vendorAdapter.setGenerateDdl(true); + vendorAdapter.setDatabasePlatform("org.hibernate.dialect.PostgreSQLDialect"); em.setJpaVendorAdapter(vendorAdapter); Map props = new HashMap<>(); diff --git a/backend/src/main/java/com/magistr/app/config/tenant/TenantRoutingDataSource.java b/backend/src/main/java/com/magistr/app/config/tenant/TenantRoutingDataSource.java index 438c4d9..e7e9e87 100644 --- a/backend/src/main/java/com/magistr/app/config/tenant/TenantRoutingDataSource.java +++ b/backend/src/main/java/com/magistr/app/config/tenant/TenantRoutingDataSource.java @@ -33,7 +33,16 @@ public class TenantRoutingDataSource extends AbstractRoutingDataSource { @Override protected Object determineCurrentLookupKey() { String tenant = TenantContext.getCurrentTenant(); - return tenant != null ? tenant : "default"; + if (tenant != null && dataSources.containsKey(tenant)) { + return tenant; + } + // Fallback: если нет контекста (например при инициализации JPA) + // или тенант не найден — берём первый доступный + if (!dataSources.isEmpty()) { + String fallback = dataSources.keySet().iterator().next().toString(); + return fallback; + } + return "default"; } /**