- убраны клиент бота, транспорт обновлений, отправитель сообщений, сборка входа при старте, секция настроек и зависимость go-telegram-bot-api; из конвейера ушла доставка ответа отправителю — исход виден опросом готовности. Колонки адресата и значение источника остались в схеме: применённые шаги не переписываются - шаг 202608140003 запрещает пустого владельца у аудиозаписи и у файла; существующие строки он не проверяет, и это принято сознательно — искать их надо запросом до выкладки - ревью нашло два пред-существующих дефекта, оба закрыты: пустой второй ответ распознавателя стирал сохранённую расшифровку, а пустая расшифровка перестала быть заметной вместе с убранной доставкой. Попутно поднят golang.org/x/image до v0.45.0 — красный шаг vulns, воспроизводился и на чистом master
56 lines
3.8 KiB
Go
56 lines
3.8 KiB
Go
// Package migrations — шаги схемы хранилища и имена коллекций, которые они
|
|
// заводят.
|
|
//
|
|
// Схема заводится версионированными шагами, и применённый шаг не переписывается
|
|
// — только новым шагом. Инвариант проекта перенесён дословно: хранилище считает
|
|
// применённое по **имени шага**, а не по пути файла, поэтому имена в
|
|
// `Register` ниже не переносятся и не переименовываются, даже если файл переехал.
|
|
//
|
|
// Шаги лежат своим каталогом, а не файлом внутри пакета репозитория, и причина
|
|
// внешняя: сверка документов ловит изменённый шаг схемы при нетронутом
|
|
// `docs/database.md` по префиксу пути (`.av-dev.toml`, ключ `migrations` секции
|
|
// `[docs]`), а префикс наводится только на каталог. Пока шаги лежали файлом,
|
|
// наводить его
|
|
// было не на что, и проверка молчала на всякой правке схемы.
|
|
package migrations
|
|
|
|
import (
|
|
pbmigrations "github.com/pocketbase/pocketbase/migrations"
|
|
)
|
|
|
|
// Имена коллекций живут здесь, рядом с шагом, который их заводит. Они же — часть
|
|
// пути к файлу в раскладке хранилища и часть адреса ссылки на него, поэтому
|
|
// меняются только новым шагом схемы.
|
|
const (
|
|
FilesCollection = "files"
|
|
// JobsCollection — прежняя коллекция задач. Шаг 202608140002 её удаляет;
|
|
// имя остаётся здесь, потому что на него ссылаются прежние шаги схемы, а
|
|
// применённый шаг не переписывается.
|
|
JobsCollection = "transcribe_jobs"
|
|
// RecordsCollection — аудиозапись, центральная сущность сервиса. Имя в
|
|
// snake_case, как у соседей по схеме: одно исключение разошлось бы молча по
|
|
// константе имён, запросу захвата, правилам панели и запрету удаления.
|
|
RecordsCollection = "audio_records"
|
|
TextsCollection = "texts"
|
|
StructuresCollection = "structures"
|
|
RecognitionsCollection = "recognitions"
|
|
RecordEventsCollection = "record_events"
|
|
TopicsCollection = "topics"
|
|
// UsersCollection заводит не наш шаг, а системный шаг библиотеки. Имя стоит
|
|
// здесь потому, что на него ссылаются и шаги схемы, и проверка предъявителя
|
|
// на приёме: строковый литерал в двух местах разошёлся бы молча.
|
|
UsersCollection = "users"
|
|
)
|
|
|
|
// Шаг регистрируется в списке приложения при загрузке пакета, а накатывает его
|
|
// `apis.Serve` прежде, чем поднять сервер.
|
|
func init() {
|
|
pbmigrations.Register(up202608110001, down202608110001, "202608110001_init.go")
|
|
pbmigrations.Register(up202608120001, down202608120001, "202608120001_oidc_login.go")
|
|
pbmigrations.Register(up202608140001, down202608140001, "202608140001_record_owner.go")
|
|
pbmigrations.Register(up202608140002, down202608140002, "202608140002_record_centric_model.go")
|
|
pbmigrations.Register(up202608140003, down202608140003, "202608140003_owner_required.go")
|
|
}
|
|
|
|
func ptr[T any](v T) *T { return &v }
|