Проверено для sqlrs v0.1.1-rc.6Исходный код 1752abbb

Подготовьте проект и окружение

Установите Local, создайте рабочую область и зафиксируйте минимальные настройки проекта.

1. Установите Local и контейнерное окружение

Получите архив для своей платформы в разделе Taidon Local, сверьте SHA-256 по инструкции выдачи и распакуйте CLI вместе с локальным движком. Запускайте исполняемые файлы из распакованного каталога или добавьте этот каталог в PATH.

Local также нужна программа для запуска контейнеров:

  • Linux — Docker; проверенные конфигурации могут использовать Podman.
  • Windows — Docker Desktop; WSL2 нужен для снимков Btrfs, но не для полного копирования.
  • macOS — Podman и снимки через полное копирование.
sqlrs --help

2. Создайте рабочую область

Выполните команду из корня репозитория, которому должна принадлежать база:

sqlrs init local --snapshot auto
sqlrs status
СоветНе добавляйте локальную рабочую область в Git

Не добавляйте локальный каталог .sqlrs/ в репозиторий. Запустите sqlrs discover --gitignore: команда проверит правила исключения и предложит недостающие строки для.gitignore, но не станет изменять файл сама.

Главные строки sqlrs status
status: ok
endpoint: http://127.0.0.1:…
profile: local
mode: local
workspace: …
container-runtime: ok

Продолжайте, когда движок отвечает status: ok, активны профиль и режим local, а workspace указывает на текущий проект. Значение endpoint и дополнительные проверки платформы зависят от машины.

Каталог .sqlrs/ отмечает границу рабочей области: используемые рецептом файлы не должны выходить за неё. CLI по умолчанию не позволяет случайно создать вложенную рабочую область.

3. Зафиксируйте минимальную конфигурацию

Проверьте созданный файл .sqlrs/config.yaml. Для предсказуемого старта достаточно явно выбрать образ базы и оставить автоматический выбор способа создания снимков:

dbms:
  image: postgres:16
snapshot:
  backend: auto

Разовый флаг --image имеет приоритет над настройкой рабочей области. В режиме auto Local выбирает доступный способ создания снимков и при необходимости используетcopy. Принудительный выбор Btrfs или OverlayFS может завершить init ошибкой, если платформа не соответствует требованиям.

4. Проверьте установку

sqlrs prepare:psql --image postgres:16 -- -c "create table if not exists smoke_check(id int); insert into smoke_check values (1);" run:psql -- -t -A -c "select count(*) from smoke_check;"
Ожидаемый вывод
1

Это stdout запроса select count(*): в таблице smoke_check одна строка. В составном вызове DSN наружу не нужен — run получает его от prepare, выполняет запрос и после завершения удаляет временный экземпляр.

Аргументы после каждого -- принадлежат psql: первый набор описывает подготовку, а второй — проверочный запрос.

Дальше нужен настоящий рецепт

Определите источник схемы своего проекта и соответствующий ему prepare-режим.

Выбрать prepare-команду