Генерируйте типы TypeScript из вашей базы данных.
Одна команда превращает ваши таблицы в типы. Затем ваш редактор отклоняет неправильный столбец или неправильное значение, прежде чем вы что-либо запустите.
1. Создайте файл
Инструмент считывает схему вашего проекта и записывает файл. Без --url и --key он ищет AURABASE_URL и AURABASE_ANON_KEY (также NEXT_PUBLIC_AURABASE_URL, VITE_AURABASE_URL и AURABASE_SERVICE_ROLE_KEY) в вашей среде, а также в .env, .env.local и .env.development.
В проекте с двумя таблицами и двумя функциями он ответил:
Запускайте его снова всякий раз, когда схема меняется. Добавьте --schema <name> для схемы, отличной от public, и --type-name для переименования основного типа.
2. Используйте его с клиентом
Сгенерированный тип описывает каждую таблицу с помощью Row, Insert и Update. На реальном файле компилятор выдал такие результаты:
В Insert столбец со значением по умолчанию или столбцом, допускающим значение NULL, является необязательным. В Update каждый столбец является необязательным.
3. Типы строк для ваших компонентов
Enums<'name'> дает значения перечисления базы данных.
4. Что проверяется
- Таблица, которой нет в сгенерированном файле, отклонена как , а не:
aura.from('anything')все еще компилируется, а ее строки не типизированы. - Функции появляются под
Functionsсо своими аргументами. Функция, возвращающая пользовательский тип строки, отображается какJsonилиunknown. - Файл отражает схему на момент его создания. Столбец, добавленный позже, неизвестен типам до тех пор, пока вы не запустите инструмент снова.
- Используйте открытый ключ для генерации типов, если только некоторые таблицы не скрыты от него. Никогда не фиксируйте ключ
service_role.