0 follower

Установка базы данных

Мы создали каркас приложения и закончили со структурой БД. В данном разделе мы создадим саму базу и настроим подключение к ней.

1. Создание базы данных

Для создания базы данных мы используем SQLite. Поскольку поддержка баз данных в Yii основана на PDO, мы можем легко переключаться между различными СУБД (например, MySQL, PostgreSQL) без необходимости изменять наш код.

Создаем файл базы данных blog.db в директории /wwwroot/blog/protected/data. И каталог и файл базы данных должны иметь возможность перезаписи процессом Web-сервера, как этого требует SQLite. Мы можем просто скопировать файл базы данных с демонстрационной версией блога из установленной копии Yii. Он расположен в директории /wwwroot/yii/demos/blog/protected/data/blog.db. Чтобы создать базу данных вручную, можно выполнить SQL-выражения из файла /wwwroot/yii/demos/blog/protected/data/schema.sqlite.sql.

Подсказка: Чтобы выполнить SQL-выражения, необходимо использовать инструмент командной строки sqlite3, который может быть найден на официальном Web-сайте SQLite.

2. Установка подключения к базе данных

Чтобы использовать базу данных блога в нашем приложении, необходимо задать конфигурацию приложения, которая находится в PHP-файле /wwwroot/blog/protected/config/main.php. Код данного файла возвращает ассоциативный массив, содержащий пары имя-значение, каждая из которых используется для инициализации свойств экземпляра приложения.

Добавим новую запись db в свойство components:

return array(
    ......
    'components'=>array(
        ......
        'db'=>array(
            'class'=>'CDbConnection',
            'connectionString'=>'sqlite:/wwwroot/blog/protected/data/blog.db',
        ),
    ),
    ......
);

Конфигурация выше говорит, что компонент приложения db является экземпляром класса CDbConnection со свойством connectionString, начальное значение которого sqlite:/wwwroot/blog/protected/data/blog.db.

Теперь мы можем использовать подключение к базе данных Yii::app()->db в любом месте нашего кода. Заметим, что выражение Yii::app() возвращает экземпляр приложения, который мы создаем во входном сценарии. За более подробным описанием методов и свойств подключения к БД, можно обратиться к описанию его класса. Однако, в большинстве случаев, подключение к БД используется не непосредственно, а через ActiveRecord.