Настройка базы данных

1. Введение

База данных Doka25C построена на MySQL/MariaDB. В будущем планируется поддержка PostgreSQL и SQLite.

2. Установка и подключение

Для работы Doka25C требуется MySQL (или MariaDB). Установите его при необходимости:

# Ubuntu/Debian
sudo apt update
sudo apt install mysql-server

# Windows (используйте XAMPP или WAMP)
        

Создайте базу данных и пользователя:

CREATE DATABASE doka25c;
CREATE USER 'dokauser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON doka25c.* TO 'dokauser'@'localhost';
FLUSH PRIVILEGES;

3. Конфигурация CodeIgniter 4

Настройте подключение к базе данных в файле .env, расположенном в корневой папке \.env

CI_ENVIRONMENT = production

app.baseURL = 'http://doka25c.local/'

database.default.hostname = 127.0.0.1
database.default.database = doka25c
database.default.username = dokauser
database.default.password = yourpassword
database.default.DBDriver = MySQLi
database.default.port = 3306

email.protocol = smtp
email.SMTPHost = smtp.yourmail.com
email.SMTPUser = your-email@example.com
email.SMTPPass = your-email-password
email.SMTPPort = 587
email.mailType = html
        

4. Структура таблицы пользователей

Актуальная структура таблицы users после обновления:

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) UNIQUE NOT NULL,
    email VARCHAR(255) UNIQUE NOT NULL,
    password_hash VARCHAR(255) NOT NULL,
    role ENUM('admin', 'editor', 'user') NOT NULL DEFAULT 'user',
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    auth_provider ENUM('local', 'google', 'facebook', 'vk', 'telegram') NOT NULL DEFAULT 'local',
    auth_id VARCHAR(255) NULL UNIQUE,
    full_name VARCHAR(255) NULL,
    birth_date DATE NULL,
    address TEXT NULL,
    phone VARCHAR(20) NULL,
    avatar VARCHAR(255) NULL,
    last_login DATETIME NULL,
    is_verified TINYINT(1) NOT NULL DEFAULT 0,
    verification_token VARCHAR(255) NULL,
    CONSTRAINT unique_auth_provider UNIQUE (auth_provider, auth_id)
);

5. Выполнение миграций

После настройки запустите миграции:

php spark migrate

После выполнения этой команды база данных будет готова к работе.

6. Проверка подключения

Создайте тестовый контроллер TestDB.php



namespace App\Controllers;
use CodeIgniter\Controller;
use Config\Database;

class TestDB extends Controller {
    public function index() {
        $db = Database::connect();
        if ($db->simpleQuery('SELECT 1')) {
            return "✅ База данных подключена и работает!";
        } else {
            return "❌ Ошибка подключения к базе!";
        }
    }
}

        

И добавте тестовый маршрут в Routes.php, чтобы убедиться, что подключение работает: $routes->get('/testdb', 'TestDB::index');

Откройте http://doka25c.local/testdb, чтобы проверить подключение.

Связанные страницы

Вернуться на главную