ertttert
Работа Drupal зависит от базы данных. Контент, комментарии, таксономия, меню, пользователи, роли, права доступа и почти все остальное хранится в базе данных и используется в Drupal в качестве источника информации, необходимой для отображения контента на сайте и управления доступом к различным его аспектам. Внутри Drupal имеется облегченный уровень абстракции баз данных — между кодом и самой базой данных. Этот уровень абстракции устраняет значительную часть сложностей взаимодействия с базой данных и защищает Drupal от различий между механизмами разных СУБД. В данной главе вы узнаете, как работает уровень абстракции баз данных и как его использовать. Вы увидите, как модули могут изменять запросы. И, наконец, вы научитесь с помощью API-интерфейса схемы Drupal вставлять в файл .install
модуля запросы, необходимые для создания и изменения таблиц базы данных.
Drupal узнает, к какой базе данных подключаться и какие имя пользователя и пароль использовать для установления соединения с базой данных, из файла settings.php
для конкретного сайта. Этот файл обычно находится по пути sites/example.com/settings.php
или sites/default/settings.php
. Код, который определяет подключение к базе данных, выглядит примерно так:
$databases =array ( 'default' =>array ( 'default' =>array ( 'driver' => 'mysql','database' => 'имя_базы_данных','username' => 'Имя_пользователя','password' => 'пароль','host' => 'localhost','port' => '','prefix' => '',) ,) ,) ;
Этот пример предназначен для СУБД MySQL. Пользователи PostgreSQL вставят в начало строки подключения не mysql, а pgsql. Конечно, указанные здесь имя базы данных, пользовательское имя и пароль должны быть актуальными для вашей базы данных. Это полномочия для доступа к базе данных, а не к Drupal, и они задаются при создании учетной записи базы данных с помощью средств СУБД. Инсталлятор Drupal спрашивает имя и пароль пользователя, чтобы поместить их в массив $databases
в файле settings.php
. Если для сайта в качестве СУБД используется sqlite, то настройка несколько упрощается. В качестве драйвера следует указать sqlite, а база данных задается путем, включающим имя базы данных:
$databases['default']['default'] =array( 'driver' => 'sqlite','database' => '/path/to/databasefilename',) ;
Всего комментариев: 0 | |