Поделиться через


Руководство: Рабочий процесс разработки с использованием ветвлений

Это важно

Автомасштабирование Lakebase находится в бета-версии в следующих регионах: eastus2, , westeuropewestus.

Автомасштабирование Lakebase — это последняя версия Lakebase с автомасштабированием вычислений, масштабированием до нуля, ветвлением и мгновенным восстановлением. Сравнение функций с Lakebase Provisioned см. в разделе выбора между версиями.

Узнайте, как использовать ветви, такие как ветви Git, предоставляя каждому разработчику изолированную ветвь для независимой работы, а затем сбросить, чтобы оставаться в синхронизации.

Предпосылки

  • Проект Lakebase с ветвью production (по умолчанию)
  • Ветвь, созданная из production для development совместной разработки
  • Базовое знакомство с SQL и Postgres

Настройка начальной схемы

Перед созданием ветви разработчика настройте простую схему в ветви разработки. Это служит общей отправной точкой, от которой все разработчики будут выполнять ответвления. ** При создании личной ветви она мгновенно наследует эту схему с помощью механизма копирования при записи.

  1. Перейдите в ветвь разработки в пользовательском интерфейсе Lakebase.
  2. Откройте редактор SQL.
  3. Создайте таблицу базовых пользователей с примерами данных:
CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    email TEXT NOT NULL UNIQUE,
    created_at TIMESTAMP DEFAULT NOW()
);

INSERT INTO users (email) VALUES
    ('alice@example.com'),
    ('bob@example.com'),
    ('charlie@example.com');

Создайте свою ветвь разработчика

Каждый разработчик в вашей команде может иметь долгоживущую ветку для непрерывной работы. Периодически сбрасывайте его, чтобы поддерживать синхронизацию с родителем.

В списке ветвей проекта выберите ветвь разработки , а затем нажмите кнопку "Создать дочернюю ветвь". Введите имя ветви (обязательно), например dev/alex (по шаблону dev/<your-name>) и нажмите кнопку "Создать".

Ветвь создается мгновенно и включает в себя все схемы и данные из среды разработки с использованием метода копирования при записи.

Ваша иерархия веток:

production (root)
  └── development (has users table + data)
        └── dev/alex (instantly inherits users table + data)

Разработайте свою функцию

Направьте приложение на вашу ветвь разработки, обновив строку подключения в .env файле, затем разрабатывайте вашу функцию в соответствии с обычным рабочим процессом.

Например, добавление отслеживания предпочтений пользователей в приложение приведет к обновлению пользовательской модели, созданию миграции с помощью платформы (Prisma, Alembic, Django и т. д.) и её запуску на вашей dev/alex ветке. Файл миграции может содержать следующее:

ALTER TABLE users ADD COLUMN preferences JSONB DEFAULT '{}';
CREATE INDEX idx_users_preferences ON users USING GIN (preferences);

После выполнения миграции разработайте функцию предпочтения в коде приложения и протестируйте полный поток локально. Ваша ветвь полностью изолирована. Изменения не влияют на рабочую среду или других разработчиков.

Просмотр изменений

Прежде чем продвигаться в другие среды, используйте диффы схемы, чтобы проверить, что изменилось. Перейдите к обзору dev/alex ветви, щелкните «Схема diff» и сравните с development.

Параллельное сравнение показывает новый preferences столбец и индекс зеленым цветом:

Дифф схемы, показывающий столбец параметров и индекс, добавленные в ветвь dev/alex

Этот шаг проверки помогает перехватывать непреднамеренные изменения, прежде чем они достигают рабочей среды. Для полной документации о различиях схем см. раздел "Сравнение схем ветвей".

Продвигайте ваши изменения

Когда вы уверены в изменениях, продвигайте их в основные ветки. Примените те же изменения схемы, которые вы проверили на dev/alex, к вашей ветви development, а затем разверните код вашего приложения. Этот рабочий процесс гарантирует, что изменения схемы проверяются в изоляции, прежде чем достичь общих сред.

Сброс и новый старт

Когда вы будете готовы начать новую работу, сбросьте личную ветвь, чтобы поддерживать синхронизацию с development, в которой могли быть изменения от других разработчиков. Это дает вам новое начало с текущей общей базовой базы.

Перейдите в вашу dev/alex ветвь и нажмите "Сброс из родителя". Модал сброса подтверждает, что все базы данных и роли будут заменены последними данными.development Это действие не является обратимым, поэтому убедитесь, что вы повысили все изменения, которые вы хотите сохранить перед подтверждением.

Сброс модального подтверждения данных

Теперь ваша ветвь в точности соответствует development и готова для следующей задачи.

Лучшие практики

  • Используйте согласованное именование: Следуйте шаблону dev/<name> для ветвей разработчиков.
  • Регулярно сбрасывайте: Поддерживайте ветку в синхронизированном состоянии с development, чтобы избежать расхождения.
  • Защита рабочей среды: Использование защищенных ветвей для предотвращения случайных изменений