Laravel — мощный фреймворк для разработки веб-приложений, и его поддержка различных баз данных делает его универсальным. В этой статье мы рассмотрим шаги по подключению Laravel к PostgreSQL для более надежного и производительного хранения данных.

Настройка файла php.ini

Первым делом необходимо проверить настройки файла php.ini для работы с PostgreSQL.

Убедитесь, что расширение pdo_pgsql активировано. Раскомментируйте или добавьте эту строку в файл php.ini:

extension=pdo_pgsql

Также, убедитесь, что расширение pgsql активировано:

extension=pgsql

Установите адекватное значение для memory_limit. Laravel может потреблять довольно много памяти, поэтому убедитесь, что значение memory_limit достаточно для ваших нужд.

memory_limit=256M

Также, установите разумное значение для max_execution_time, чтобы избежать проблем с превышением времени выполнения скриптов.

max_execution_time=60

После внесения изменений в файл php.ini, не забудьте перезагрузить веб-сервер или PHP-FPM, чтобы изменения вступили в силу.

Создаем базу данных в PostgreSQL

Создайте базу данных для вашего проекта в PostgreSQL. Откройте консоль PostgreSQL и выполните следующую команду:

CREATE DATABASE test_db;

Вместо test_db введите название своей БД.

Настройка .env файла в Laravel:

Откройте файл .env в корне вашего проекта Laravel. Найдите секцию для базы данных и измените следующие параметры:

DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=test_db
DB_USERNAME=postgres
DB_PASSWORD=qwerty123456

Обозначение параметров:

  • DB_CONNECTION: Тип базы данных (PostgreSQL).
  • DB_HOST: Хост базы данных.
  • DB_PORT: Порт подключения PostgreSQL.
  • DB_DATABASE: Название базы данных.
  • DB_USERNAME: Имя пользователя базы данных.
  • DB_PASSWORD: Пароль пользователя базы данных.

Изменение конфигурации Laravel

Откройте файл config/database.php и найдите секцию connections. Внутри pgsql массива убедитесь, что параметры соответствуют вашим настройкам:

'pgsql' => [
    'driver' => 'pgsql',
    'host' => env('DB_HOST', '127.0.0.1'),
    'port' => env('DB_PORT', '5432'),
    'database' => env('DB_DATABASE', 'forge'),
    'username' => env('DB_USERNAME', 'forge'),
    'password' => env('DB_PASSWORD', ''),
    'charset' => 'utf8',
    'prefix' => '',
    'schema' => 'public',
    'sslmode' => 'prefer',
],

Создаем тестовую миграцию

Теперь давайте создадим таблицу test с помощью миграции.

Миграция в Laravel — это способ управления изменениями в структуре базы данных через код. Она позволяет создавать и изменять таблицы и колонки в базе данных с использованием PHP-кода вместо SQL-запросов.

Откройте терминал и выполните следующую команду, чтобы создать новую миграцию:

php artisan make:migration test

Это создаст новый файл миграции в каталоге database/migrations. Откройте этот файл и определите структуру вашей таблицы. Например, вы можете использовать следующий код:

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class Test extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('test', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->text('description');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('test');
    }
}

В данном случае, таблица test будет содержать поля id, name, description, и метки времени created_at и updated_at.

Запустите миграцию для создания таблицы в базе данных

Теперь выполним непримененные миграции с помощью команды:

php artisan migrate

Теперь у вас есть тестовая таблица test, и вы можете использовать ее для проверки подключения Laravel к PostgreSQL. Вы также можете добавить дополнительные поля или настройки в миграцию в соответствии с вашими потребностями.

Проверяем, что таблица test создана в pgAdmin.

 

 


Warning: Undefined variable $aff_bottom_mark in /sites/codelab.pro/wp-content/themes/myTheme/dist/partials/post/post_base.php on line 81

Warning: Undefined variable $aff_bottom_info in /sites/codelab.pro/wp-content/themes/myTheme/dist/partials/post/post_base.php on line 85