diff --git a/core/includes/database.inc b/core/includes/database.inc index 668b2a640921b5eeaa0f37bedea899e0d18bd055..ad203e36c312a635728c2de3f8034b006633ac8e 100644 --- a/core/includes/database.inc +++ b/core/includes/database.inc @@ -645,6 +645,11 @@ function db_index_exists($table, $name) { * @see \Drupal\Core\Database\Schema::tableExists() */ function db_table_exists($table) { + @trigger_error( + 'db_table_exists() is deprecated in Drupal 8.0.x and will be removed before Drupal 9.0.0. Use $injected_database->schema()->tableExists($table) instead. See https://www.drupal.org/node/2947929.', + E_USER_DEPRECATED + ); + return Database::getConnection()->schema()->tableExists($table); } diff --git a/core/includes/schema.inc b/core/includes/schema.inc index f0a104df652115a279ba5bfa758b22e20be04699..978ec2307af5c038e8a7368672764d0fe2c88e48 100644 --- a/core/includes/schema.inc +++ b/core/includes/schema.inc @@ -134,7 +134,7 @@ function drupal_uninstall_schema($module) { _drupal_schema_initialize($tables, $module, FALSE); $schema = \Drupal::database()->schema(); foreach ($tables as $table) { - if (db_table_exists($table['name'])) { + if ($schema->tableExists($table['name'])) { $schema->dropTable($table['name']); } } diff --git a/core/modules/simpletest/src/Tests/KernelTestBaseTest.php b/core/modules/simpletest/src/Tests/KernelTestBaseTest.php index 7131041d15786f7dd680f456d25ebed45b6e2030..fc0d918b8af58ea6bbdf0b8cdbbec89f2e2502ba 100644 --- a/core/modules/simpletest/src/Tests/KernelTestBaseTest.php +++ b/core/modules/simpletest/src/Tests/KernelTestBaseTest.php @@ -62,7 +62,7 @@ public function testSetUp() { $this->assertIdentical(\Drupal::moduleHandler()->getImplementations('entity_type_alter'), ['entity_test']); // Verify that no modules have been installed. - $this->assertFalse(db_table_exists($table), "'$table' database table not found."); + $this->assertFalse(Database::getConnection()->schema()->tableExists($table), "'$table' database table not found."); // Verify that the settings.testing.php got taken into account. $this->assertTrue(function_exists('simpletest_test_stub_settings_function')); @@ -114,7 +114,7 @@ public function testEnableModulesInstall() { $list = \Drupal::moduleHandler()->getImplementations('hook_info'); $this->assertFalse(in_array($module, $list), "{$module}_hook_info() in \Drupal::moduleHandler()->getImplementations() not found."); - $this->assertFalse(db_table_exists($table), "'$table' database table not found."); + $this->assertFalse(Database::getConnection()->schema()->tableExists($table), "'$table' database table not found."); // Install the module. \Drupal::service('module_installer')->install([$module]); @@ -126,7 +126,7 @@ public function testEnableModulesInstall() { $list = \Drupal::moduleHandler()->getImplementations('hook_info'); $this->assertTrue(in_array($module, $list), "{$module}_hook_info() in \Drupal::moduleHandler()->getImplementations() found."); - $this->assertTrue(db_table_exists($table), "'$table' database table found."); + $this->assertTrue(Database::getConnection()->schema()->tableExists($table), "'$table' database table found."); $schema = drupal_get_module_schema($module, $table); $this->assertTrue($schema, "'$table' table schema found."); } @@ -156,7 +156,7 @@ public function testInstallSchema() { $table = 'entity_test_example'; // Verify that we can install a table from the module schema. $this->installSchema($module, $table); - $this->assertTrue(db_table_exists($table), "'$table' database table found."); + $this->assertTrue(Database::getConnection()->schema()->tableExists($table), "'$table' database table found."); // Verify that the schema is known to Schema API. $schema = drupal_get_module_schema($module, $table); @@ -171,7 +171,7 @@ public function testInstallSchema() { catch (\Exception $e) { $this->pass('Exception for non-retrievable schema found.'); } - $this->assertFalse(db_table_exists($table), "'$table' database table not found."); + $this->assertFalse(Database::getConnection()->schema()->tableExists($table), "'$table' database table not found."); $schema = drupal_get_module_schema($module, $table); $this->assertFalse($schema, "'$table' table schema not found."); @@ -185,14 +185,14 @@ public function testInstallSchema() { catch (\Exception $e) { $this->pass('Exception for non-retrievable schema found.'); } - $this->assertFalse(db_table_exists($table), "'$table' database table not found."); + $this->assertFalse(Database::getConnection()->schema()->tableExists($table), "'$table' database table not found."); $schema = drupal_get_module_schema($module, $table); $this->assertTrue($schema, "'$table' table schema found."); // Verify that the same table can be installed after enabling the module. $this->enableModules([$module]); $this->installSchema($module, $table); - $this->assertTrue(db_table_exists($table), "'$table' database table found."); + $this->assertTrue(Database::getConnection()->schema()->tableExists($table), "'$table' database table found."); $schema = drupal_get_module_schema($module, $table); $this->assertTrue($schema, "'$table' table schema found."); } @@ -206,7 +206,7 @@ public function testInstallEntitySchema() { $this->enableModules(['user']); // Verity that the entity schema is created properly. $this->installEntitySchema($entity); - $this->assertTrue(db_table_exists($entity), "'$entity' database table found."); + $this->assertTrue(Database::getConnection()->schema()->tableExists($entity), "'$entity' database table found."); } /** diff --git a/core/modules/system/src/Tests/Module/ModuleTestBase.php b/core/modules/system/src/Tests/Module/ModuleTestBase.php index cc5a7ef2706fe06d54498aea0267a93617d5bea3..257bb879cf77000bfc8d03ae0fb2e10291daf5d5 100644 --- a/core/modules/system/src/Tests/Module/ModuleTestBase.php +++ b/core/modules/system/src/Tests/Module/ModuleTestBase.php @@ -59,8 +59,9 @@ public function assertTableCount($base_table, $count = TRUE) { public function assertModuleTablesExist($module) { $tables = array_keys(drupal_get_module_schema($module)); $tables_exist = TRUE; + $schema = Database::getConnection()->schema(); foreach ($tables as $table) { - if (!db_table_exists($table)) { + if (!$schema->tableExists($table)) { $tables_exist = FALSE; } } @@ -76,8 +77,9 @@ public function assertModuleTablesExist($module) { public function assertModuleTablesDoNotExist($module) { $tables = array_keys(drupal_get_module_schema($module)); $tables_exist = FALSE; + $schema = Database::getConnection()->schema(); foreach ($tables as $table) { - if (db_table_exists($table)) { + if ($schema->tableExists($table)) { $tables_exist = TRUE; } } diff --git a/core/modules/system/tests/src/Functional/Database/TemporaryQueryTest.php b/core/modules/system/tests/src/Functional/Database/TemporaryQueryTest.php index 52265857904accc14c5dd289a940598ee8cc3470..e7d08502f3571c1460d8c7bb250a3078db5a1fb0 100644 --- a/core/modules/system/tests/src/Functional/Database/TemporaryQueryTest.php +++ b/core/modules/system/tests/src/Functional/Database/TemporaryQueryTest.php @@ -2,6 +2,8 @@ namespace Drupal\Tests\system\Functional\Database; +use Drupal\Core\Database\Database; + /** * Tests the temporary query functionality. * @@ -29,7 +31,7 @@ public function testTemporaryQuery() { $data = json_decode($this->getSession()->getPage()->getContent()); if ($data) { $this->assertEqual($this->countTableRows('test'), $data->row_count, 'The temporary table contains the correct amount of rows.'); - $this->assertFalse(db_table_exists($data->table_name), 'The temporary table is, indeed, temporary.'); + $this->assertFalse(Database::getConnection()->schema()->tableExists($data->table_name), 'The temporary table is, indeed, temporary.'); } else { $this->fail('The creation of the temporary table failed.'); diff --git a/core/modules/system/tests/src/Functional/Module/ModuleTestBase.php b/core/modules/system/tests/src/Functional/Module/ModuleTestBase.php index 425073e26f2d85c7c1c1d71fc43a0a0978cb793f..6cc726326dc3bb98bb679afdf7a9a8cb1549a3bf 100644 --- a/core/modules/system/tests/src/Functional/Module/ModuleTestBase.php +++ b/core/modules/system/tests/src/Functional/Module/ModuleTestBase.php @@ -56,8 +56,9 @@ public function assertTableCount($base_table, $count = TRUE) { public function assertModuleTablesExist($module) { $tables = array_keys(drupal_get_module_schema($module)); $tables_exist = TRUE; + $schema = Database::getConnection()->schema(); foreach ($tables as $table) { - if (!db_table_exists($table)) { + if (!$schema->tableExists($table)) { $tables_exist = FALSE; } } @@ -73,8 +74,9 @@ public function assertModuleTablesExist($module) { public function assertModuleTablesDoNotExist($module) { $tables = array_keys(drupal_get_module_schema($module)); $tables_exist = FALSE; + $schema = Database::getConnection()->schema(); foreach ($tables as $table) { - if (db_table_exists($table)) { + if ($schema->tableExists($table)) { $tables_exist = TRUE; } } diff --git a/core/tests/Drupal/KernelTests/Core/Database/RegressionTest.php b/core/tests/Drupal/KernelTests/Core/Database/RegressionTest.php index e4cc8681cfd1cf4dcd73da883c3e53f51dca0e69..a8a8b90b5b3631045d58f6586c3cd66b2f655957 100644 --- a/core/tests/Drupal/KernelTests/Core/Database/RegressionTest.php +++ b/core/tests/Drupal/KernelTests/Core/Database/RegressionTest.php @@ -37,6 +37,10 @@ public function testRegression_310447() { /** * Tests the db_table_exists() function. + * + * @group legacy + * + * @expectedDeprecation db_table_exists() is deprecated in Drupal 8.0.x and will be removed before Drupal 9.0.0. Use $injected_database->schema()->tableExists($table) instead. See https://www.drupal.org/node/2947929. */ public function testDBTableExists() { $this->assertSame(TRUE, db_table_exists('test'), 'Returns true for existent table.'); diff --git a/core/tests/Drupal/KernelTests/Core/Entity/FieldSqlStorageTest.php b/core/tests/Drupal/KernelTests/Core/Entity/FieldSqlStorageTest.php index 0ef35db9dfb1b4c6d029d5b73432287b157c25f1..376a2fadfdaae55b582393ec729d1b5054e8da6d 100644 --- a/core/tests/Drupal/KernelTests/Core/Entity/FieldSqlStorageTest.php +++ b/core/tests/Drupal/KernelTests/Core/Entity/FieldSqlStorageTest.php @@ -379,8 +379,9 @@ public function testFieldUpdateFailure() { $this->tableMapping->getDedicatedDataTableName($prior_field_storage), $this->tableMapping->getDedicatedRevisionTableName($prior_field_storage), ]; + $schema = Database::getConnection()->schema(); foreach ($tables as $table_name) { - $this->assertTrue(db_table_exists($table_name), t('Table %table exists.', ['%table' => $table_name])); + $this->assertTrue($schema->tableExists($table_name), t('Table %table exists.', ['%table' => $table_name])); } }