Як використовувати Google Sheet як базу даних для Laravel за допомогою Google Sheets Database Driver

Перекладено ШІ 0 Laravel News 19 травня, 2026

Новий драйвер для Laravel дозволяє використовувати Google Таблиці як повноцінну базу даних через інтерфейс Eloquent. Дізнайтеся, як це рішення допоможе вашій команді легко керувати даними без складних налаштувань SQL.

Laravel Google Sheets Database Driver від AmazingBV додає кастомне з’єднання google-sheets. Це дозволяє Eloquent, конструктору запитів та міграціям працювати безпосередньо з Google Таблицями.

Концепція проста: таблиця стає базою даних, вкладки — таблицями, а перший рядок визначає назви колонок. Решту технічних деталей пакет бере на себе.

# Коли це варто використовувати

Автор відверто зазначає: це не заміна MySQL. Пакет створений для команд із помірними запитами: невеликих бек-офісних застосунків, прототипів чи внутрішніх інструментів, де використання MySQL або PostgreSQL здається надлишковим. Рішення ідеально підходить, якщо команда вже працює з таблицями, не-технічні фахівці хочуть редагувати дані вручну, а кількість рядків залишається невеликою.

Якщо вам потрібні транзакції, зовнішні ключі, обмеження на рівні бази даних або висока швидкість запису — цей інструмент не для вас.

# Налаштування

Після встановлення через Composer:

composer require amazingbv/laravel-google-sheets-database-driver

Вам знадобиться JSON-ключ service account із Google Cloud. Короткий план: створіть проект у Google Cloud, увімкніть Google Sheets API, створіть service account і завантажте ключ. Детальна інструкція є у репозиторії проекту.

Отримавши ключ, додайте ID таблиці та шлях до файлу облікових даних у ваш .env:

DB_CONNECTION=google-sheets
DB_DATABASE=your-google-spreadsheet-id
GOOGLE_SHEETS_CREDENTIALS_PATH=/absolute/path/to/service-account.json

Електронна адреса client_email вашого сервісного акаунту повинна мати доступ Editor до таблиці. Після цього виконайте команду для підготовки внутрішніх вкладок драйвера:

php artisan sheets:install

# Невеликий приклад

Уявімо простий застосунок для реєстрації на мітап. Міграція виглядає як звичайна міграція Laravel:

Schema::connection('google-sheets')->create('rsvps', function (Blueprint $table) {
    $table->id();
    $table->string('name');
    $table->string('email');
    $table->boolean('attending')->default(true);
    $table->timestamps();
});

Запустіть її за допомогою php artisan migrate --database=google-sheets, і в таблиці з’явиться вкладка rsvps із відповідними заголовками.

Сама модель не потребує особливих налаштувань:

class Rsvp extends Model
{
    protected $connection = 'google-sheets';
    protected $guarded = [];
    protected $casts = ['attending' => 'boolean'];
}

Після цього стандартні методи працюватимуть як зазвичай:

Rsvp::create([
    'name' => 'Ada Lovelace',
    'email' => 'ada@example.com',
    'attending' => true,
]);
 
$confirmed = Rsvp::where('attending', true)
    ->orderBy('created_at')
    ->get();

Кожен запис миттєво з’являється в таблиці. Це головна перевага: організатор може фільтрувати чи редагувати дані прямо в Google Sheets, поки Laravel-застосунок продовжує з ними працювати.

# Що можна і чого не можна запитувати

Драйвер підтримує лише частину Query API, а не повний SQL. Доступні where, whereIn, whereNull, whereLike, orderBy, limit, offset, стандартні агрегати (count, sum, avg тощо) та просте з’єднання inner join у пам'яті.

Не підтримуються: raw SQL, groupBy, having, unions та повноцінні транзакції. Виклики DB::transaction() сприймаються як порожні операції (no-ops) — це зберігає працездатність черг, але не забезпечує відкату змін.

Міграції працюють за схожим принципом: ->unique(), ->index() чи ->foreignId() не викличуть помилок, але Google Sheets не буде їх контролювати. Такі перевірки варто реалізувати на рівні коду застосунку.

# Робота з лімітами API

Google Sheets має жорсткі ліміти на кількість запитів за хвилину. Для захисту від них драйвер використовує кешування читання, налаштовувані обмеження (throttles), повторні спроби з експоненціальною затримкою та підтримку кеш-драйверів Laravel (file, redis тощо). Усі ці параметри можна налаштувати в .env.

# Вкладка "Database Index"

Важлива деталь: пакет створює вкладку Database Index першою в документі. Вона містить посилання на всі таблиці-вкладки. Це спрощує навігацію для користувачів, які відкривають таблицю безпосередньо.

# Спробувати

Дізнатися більше та переглянути вихідний код можна в GitHub-репозиторії проекту.

Популярні

Інше, що варто прочитати

79 Оновлено 20 травня, 2026

Все, що потрібно знати про Laravel 13

Laravel 13 вийде в березні 2026 року й вимагатиме мінімум PHP 8.3. Хочете дізнатися, як PHP‑атрибути для моделей, нові налаштування черг і метод Cache::touch() вплинуть на вашу розробку?

17 Оновлено 20 травня, 2026

Оптимізація запитів до бази даних за допомогою скорочених методів Laravel

Laravel пропонує зручні методи для роботи з датами, які значно спрощують запити до бази даних. Досліджуйте, як ці інтуїтивно зрозумілі функції допомагають створювати чіткі та зрозумілі умови для роботи з часовими даними!

17 Оновлено 20 травня, 2026

Обробка геопросторових даних за допомогою Laravel Magellan

Ви готові відкрити нові горизонти у роботі з геопросторовими даними в Laravel? Дізнайтеся, як за допомогою PostGIS та пакету Laravel-Magellan можна легко зберігати, запитувати та маніпулювати інформацією про розташування, перетворюючи ваші проекти на вражаючі рішення у сфері картографії та геолокації!