mirror of
https://github.com/appwrite/appwrite.git
synced 2026-05-26 13:51:13 +00:00
(fix): use adapter ID type to determine tenant value for MongoDB compatibility
This commit is contained in:
+16
-4
@@ -161,9 +161,12 @@ $setResource('getProjectDB', function (Group $pools, Database $dbForPlatform, $c
|
||||
$sharedTables = \explode(',', System::getEnv('_APP_DATABASE_SHARED_TABLES', ''));
|
||||
|
||||
if (\in_array($dsn->getHost(), $sharedTables)) {
|
||||
$tenant = $database->getIdAttributeType() === Database::VAR_INTEGER
|
||||
? (int)$project->getSequence()
|
||||
: $project->getSequence();
|
||||
$database
|
||||
->setSharedTables(true)
|
||||
->setTenant((int)$project->getSequence())
|
||||
->setTenant($tenant)
|
||||
->setNamespace($dsn->getParam('namespace'));
|
||||
} else {
|
||||
$database
|
||||
@@ -182,9 +185,12 @@ $setResource('getProjectDB', function (Group $pools, Database $dbForPlatform, $c
|
||||
$sharedTables = \explode(',', System::getEnv('_APP_DATABASE_SHARED_TABLES', ''));
|
||||
|
||||
if (\in_array($dsn->getHost(), $sharedTables)) {
|
||||
$tenant = $database->getIdAttributeType() === Database::VAR_INTEGER
|
||||
? (int)$project->getSequence()
|
||||
: $project->getSequence();
|
||||
$database
|
||||
->setSharedTables(true)
|
||||
->setTenant((int)$project->getSequence())
|
||||
->setTenant($tenant)
|
||||
->setNamespace($dsn->getParam('namespace'));
|
||||
} else {
|
||||
$database
|
||||
@@ -208,7 +214,10 @@ $setResource('getLogsDB', function (Group $pools, Cache $cache, Authorization $a
|
||||
|
||||
return function (?Document $project = null) use ($pools, $cache, $database, $authorization) {
|
||||
if ($database !== null && $project !== null && !$project->isEmpty() && $project->getId() !== 'console') {
|
||||
$database->setTenant((int)$project->getSequence());
|
||||
$tenant = $database->getIdAttributeType() === Database::VAR_INTEGER
|
||||
? (int)$project->getSequence()
|
||||
: $project->getSequence();
|
||||
$database->setTenant($tenant);
|
||||
return $database;
|
||||
}
|
||||
|
||||
@@ -225,7 +234,10 @@ $setResource('getLogsDB', function (Group $pools, Cache $cache, Authorization $a
|
||||
|
||||
// set tenant
|
||||
if ($project !== null && !$project->isEmpty() && $project->getId() !== 'console') {
|
||||
$database->setTenant((int)$project->getSequence());
|
||||
$tenant = $database->getIdAttributeType() === Database::VAR_INTEGER
|
||||
? (int)$project->getSequence()
|
||||
: $project->getSequence();
|
||||
$database->setTenant($tenant);
|
||||
}
|
||||
|
||||
return $database;
|
||||
|
||||
+16
-4
@@ -582,9 +582,12 @@ Http::setResource('dbForProject', function (Group $pools, Database $dbForPlatfor
|
||||
$sharedTables = \explode(',', System::getEnv('_APP_DATABASE_SHARED_TABLES', ''));
|
||||
|
||||
if (\in_array($dsn->getHost(), $sharedTables)) {
|
||||
$tenant = $database->getIdAttributeType() === Database::VAR_INTEGER
|
||||
? (int) $project->getSequence()
|
||||
: $project->getSequence();
|
||||
$database
|
||||
->setSharedTables(true)
|
||||
->setTenant((int) $project->getSequence())
|
||||
->setTenant($tenant)
|
||||
->setNamespace($dsn->getParam('namespace'));
|
||||
} else {
|
||||
$database
|
||||
@@ -850,9 +853,12 @@ Http::setResource('getProjectDB', function (Group $pools, Database $dbForPlatfor
|
||||
$sharedTables = \explode(',', System::getEnv('_APP_DATABASE_SHARED_TABLES', ''));
|
||||
|
||||
if (\in_array($dsn->getHost(), $sharedTables)) {
|
||||
$tenant = $database->getIdAttributeType() === Database::VAR_INTEGER
|
||||
? (int) $project->getSequence()
|
||||
: $project->getSequence();
|
||||
$database
|
||||
->setSharedTables(true)
|
||||
->setTenant((int) $project->getSequence())
|
||||
->setTenant($tenant)
|
||||
->setNamespace($dsn->getParam('namespace'));
|
||||
} else {
|
||||
$database
|
||||
@@ -882,7 +888,10 @@ Http::setResource('getLogsDB', function (Group $pools, Cache $cache, Authorizati
|
||||
|
||||
return function (?Document $project = null) use ($pools, $cache, $authorization, &$database) {
|
||||
if ($database !== null && $project !== null && !$project->isEmpty() && $project->getId() !== 'console') {
|
||||
$database->setTenant((int) $project->getSequence());
|
||||
$tenant = $database->getIdAttributeType() === Database::VAR_INTEGER
|
||||
? (int) $project->getSequence()
|
||||
: $project->getSequence();
|
||||
$database->setTenant($tenant);
|
||||
return $database;
|
||||
}
|
||||
|
||||
@@ -899,7 +908,10 @@ Http::setResource('getLogsDB', function (Group $pools, Cache $cache, Authorizati
|
||||
|
||||
// set tenant
|
||||
if ($project !== null && !$project->isEmpty() && $project->getId() !== 'console') {
|
||||
$database->setTenant((int) $project->getSequence());
|
||||
$tenant = $database->getIdAttributeType() === Database::VAR_INTEGER
|
||||
? (int) $project->getSequence()
|
||||
: $project->getSequence();
|
||||
$database->setTenant($tenant);
|
||||
}
|
||||
|
||||
return $database;
|
||||
|
||||
+4
-1
@@ -113,9 +113,12 @@ if (!function_exists('getProjectDB')) {
|
||||
$sharedTables = \explode(',', System::getEnv('_APP_DATABASE_SHARED_TABLES', ''));
|
||||
|
||||
if (\in_array($dsn->getHost(), $sharedTables)) {
|
||||
$tenant = $database->getIdAttributeType() === Database::VAR_INTEGER
|
||||
? (int)$project->getSequence()
|
||||
: $project->getSequence();
|
||||
$database
|
||||
->setSharedTables(true)
|
||||
->setTenant((int)$project->getSequence())
|
||||
->setTenant($tenant)
|
||||
->setNamespace($dsn->getParam('namespace'));
|
||||
} else {
|
||||
$database
|
||||
|
||||
+20
-5
@@ -109,9 +109,12 @@ Server::setResource('dbForProject', function (Cache $cache, Registry $register,
|
||||
$sharedTables = \explode(',', System::getEnv('_APP_DATABASE_SHARED_TABLES', ''));
|
||||
|
||||
if (\in_array($dsn->getHost(), $sharedTables)) {
|
||||
$tenant = $database->getIdAttributeType() === Database::VAR_INTEGER
|
||||
? (int)$project->getSequence()
|
||||
: $project->getSequence();
|
||||
$database
|
||||
->setSharedTables(true)
|
||||
->setTenant((int)$project->getSequence())
|
||||
->setTenant($tenant)
|
||||
->setNamespace($dsn->getParam('namespace'));
|
||||
} else {
|
||||
$database
|
||||
@@ -149,9 +152,12 @@ Server::setResource('getProjectDB', function (Group $pools, Database $dbForPlatf
|
||||
$sharedTables = \explode(',', System::getEnv('_APP_DATABASE_SHARED_TABLES', ''));
|
||||
|
||||
if (\in_array($dsn->getHost(), $sharedTables)) {
|
||||
$tenant = $database->getIdAttributeType() === Database::VAR_INTEGER
|
||||
? (int)$project->getSequence()
|
||||
: $project->getSequence();
|
||||
$database
|
||||
->setSharedTables(true)
|
||||
->setTenant((int)$project->getSequence())
|
||||
->setTenant($tenant)
|
||||
->setNamespace($dsn->getParam('namespace'));
|
||||
} else {
|
||||
$database
|
||||
@@ -171,9 +177,12 @@ Server::setResource('getProjectDB', function (Group $pools, Database $dbForPlatf
|
||||
$sharedTables = \explode(',', System::getEnv('_APP_DATABASE_SHARED_TABLES', ''));
|
||||
|
||||
if (\in_array($dsn->getHost(), $sharedTables)) {
|
||||
$tenant = $database->getIdAttributeType() === Database::VAR_INTEGER
|
||||
? (int)$project->getSequence()
|
||||
: $project->getSequence();
|
||||
$database
|
||||
->setSharedTables(true)
|
||||
->setTenant((int)$project->getSequence())
|
||||
->setTenant($tenant)
|
||||
->setNamespace($dsn->getParam('namespace'));
|
||||
} else {
|
||||
$database
|
||||
@@ -195,7 +204,10 @@ Server::setResource('getLogsDB', function (Group $pools, Cache $cache, Authoriza
|
||||
$database = null;
|
||||
return function (?Document $project = null) use ($pools, $cache, $database, $authorization) {
|
||||
if ($database !== null && $project !== null && !$project->isEmpty() && $project->getId() !== 'console') {
|
||||
$database->setTenant((int)$project->getSequence());
|
||||
$tenant = $database->getIdAttributeType() === Database::VAR_INTEGER
|
||||
? (int)$project->getSequence()
|
||||
: $project->getSequence();
|
||||
$database->setTenant($tenant);
|
||||
return $database;
|
||||
}
|
||||
|
||||
@@ -212,7 +224,10 @@ Server::setResource('getLogsDB', function (Group $pools, Cache $cache, Authoriza
|
||||
|
||||
// set tenant
|
||||
if ($project !== null && !$project->isEmpty() && $project->getId() !== 'console') {
|
||||
$database->setTenant((int)$project->getSequence());
|
||||
$tenant = $database->getIdAttributeType() === Database::VAR_INTEGER
|
||||
? (int)$project->getSequence()
|
||||
: $project->getSequence();
|
||||
$database->setTenant($tenant);
|
||||
}
|
||||
|
||||
return $database;
|
||||
|
||||
Generated
+6
-6
@@ -3850,16 +3850,16 @@
|
||||
},
|
||||
{
|
||||
"name": "utopia-php/database",
|
||||
"version": "5.3.9",
|
||||
"version": "5.3.10",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/utopia-php/database.git",
|
||||
"reference": "503f13d56c3a76c417f245a9474c0a3ed4c89ed2"
|
||||
"reference": "1c768ad629984af7f6dbfbbb9e2e922f8cdfb3eb"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/utopia-php/database/zipball/503f13d56c3a76c417f245a9474c0a3ed4c89ed2",
|
||||
"reference": "503f13d56c3a76c417f245a9474c0a3ed4c89ed2",
|
||||
"url": "https://api.github.com/repos/utopia-php/database/zipball/1c768ad629984af7f6dbfbbb9e2e922f8cdfb3eb",
|
||||
"reference": "1c768ad629984af7f6dbfbbb9e2e922f8cdfb3eb",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3902,9 +3902,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/utopia-php/database/issues",
|
||||
"source": "https://github.com/utopia-php/database/tree/5.3.9"
|
||||
"source": "https://github.com/utopia-php/database/tree/5.3.10"
|
||||
},
|
||||
"time": "2026-03-12T13:17:43+00:00"
|
||||
"time": "2026-03-13T06:10:41+00:00"
|
||||
},
|
||||
{
|
||||
"name": "utopia-php/detector",
|
||||
|
||||
@@ -218,9 +218,15 @@ class Create extends Action
|
||||
$dbForProject->setDatabase(APP_DATABASE);
|
||||
|
||||
if ($sharedTables) {
|
||||
$tenant = null;
|
||||
if ($sharedTablesV1) {
|
||||
$tenant = $dbForProject->getIdAttributeType() === Database::VAR_INTEGER
|
||||
? (int)$project->getSequence()
|
||||
: $project->getSequence();
|
||||
}
|
||||
$dbForProject
|
||||
->setSharedTables(true)
|
||||
->setTenant($sharedTablesV1 ? (int)$project->getSequence() : null)
|
||||
->setTenant($tenant)
|
||||
->setNamespace($dsn->getParam('namespace'));
|
||||
} else {
|
||||
$dbForProject
|
||||
|
||||
@@ -479,7 +479,11 @@ class StatsUsage extends Action
|
||||
}
|
||||
}
|
||||
$documentClone = clone $stat;
|
||||
$documentClone->setAttribute('$tenant', (int) $project->getSequence());
|
||||
$dbForLogs = ($this->getLogsDB)();
|
||||
$tenant = $dbForLogs->getIdAttributeType() === Database::VAR_INTEGER
|
||||
? (int) $project->getSequence()
|
||||
: $project->getSequence();
|
||||
$documentClone->setAttribute('$tenant', $tenant);
|
||||
$this->statDocuments[] = $documentClone;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user