ЧЕТЫРЕ ВКЛАДКИ
// каждая делает одно — и хорошоВидно, как устроена таблица
Каждая колонка и каждый constraint — человеческим языком. Индексы и триггеры сразу под ними. Внешние ключи ведут себя как внешние ключи: каскадные удаления работают, сиротливые строки отклоняются.
Настоящая таблица данных
Редактируешь ячейки на месте, сортируешь кликом по заголовку, фильтруешь из футера. Клик по любому BLOB — и Squire понимает, что это: UUID, картинка, JSON, gzip-пейлоад, даже текст Apple Notes из protobuf. Прыжок по внешнему ключу — кликом, обратно — тем же.
ГЛУБЖЕ ПОВЕРХНОСТИ
// реальные базы — это BLOB'ы, локи и схемы, которых никто не помнитКлик по непрозрачному BLOB — и Squire говорит, что внутри: UUID, JSON, картинка, gzip, бинарный plist. Даже Apple Notes возвращаются читаемым текстом, а не стеной hex.
Опиши на английском — получи рабочий запрос. Опиши таблицу — получи схему с уже подключёнными FK. Нужны реалистичные строки? Один клик. Всё локально, база не покидает Mac.
Сравнить прод-схему со стейджингом или вчерашний бэкап с сегодняшним — бок о бок, таблица за таблицей, колонка за колонкой.
Бросил CSV на Squire — получил таблицу. В обратную сторону — экспорт в CSV, TSV или JSON, ровно то, что импортнёшь назад.
Без ручных CREATE: формы для таблиц, индексов, вьюх и триггеров. Squire сам выбирает безопасный путь — нативный ALTER или транзакционный rebuild. Точный SQL — снизу.
Читает SQLite, даже когда файл занят системой — база iOS-симулятора, Notes, Messages. Автоматически падает в read-only, чтобы всё равно заглянуть внутрь.
ПОЧЕМУ ТАК
Ядро — тонкая Swift-обёртка над системным C-шным libsqlite3, без внешних SPM-зависимостей. Никаких GRDB и SQLite.swift: меньше веса, меньше магии, сборка остаётся лёгкой и предсказуемой. Каждое окно держит живое соединение с файлом базы.
SPEC
Брось базу на иконку — и ты уже внутри.
$ brew install --cask squire // скоро └─ вернуться ко всем проектам