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
Создаем базу данных в 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 с помощью миграции.
Откройте терминал и выполните следующую команду, чтобы создать новую миграцию:
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.