Перейти к основному содержанию

Использование CLI

Неофициальный Бета-перевод

Эта страница переведена PageTurner AI (бета). Не одобрена официально проектом. Нашли ошибку? Сообщить о проблеме →

Установка CLI

Если файлы сущностей на JavaScript

Если у вас установлена локальная версия TypeORM, убедитесь, что она совпадает с глобальной версией, которую мы будем устанавливать.

Установите TypeORM глобально командой npm i -g typeorm. Либо используйте npx typeorm <params> для каждой команды, если предпочитаете не устанавливать CLI глобально.

Если файлы сущностей на TypeScript

Этот CLI инструмент написан на JavaScript и работает в Node.js. Если ваши файлы сущностей используют TypeScript, перед использованием CLI их нужно скомпилировать в JavaScript. Этот раздел можно пропустить, если вы используете только JavaScript.

Для упрощения работы настройте ts-node в проекте следующим образом:

Установите ts-node:

npm install ts-node --save-dev

Добавьте команду typeorm в раздел scripts файла package.json

"scripts": {
...
"typeorm": "typeorm-ts-node-commonjs"
}

Для проектов ESM добавьте вместо этого:

"scripts": {
...
"typeorm": "typeorm-ts-node-esm"
}

Если нужно загрузить дополнительные модули вроде module-alias, добавьте дополнительные параметры --require my-module-supporting-register

Затем команду можно запускать так:

npm run typeorm migration:run -- -d path-to-datasource-config

Как читать документацию?

Для сокращения объёма документации в последующих разделах используется глобально установленный TypeORM CLI. В зависимости от вашего способа установки, замените typeorm в начале команд на npx typeorm или npm run typeorm.

Инициализация нового TypeORM проекта

Создайте новый проект с предустановленной конфигурацией:

typeorm init

Будут созданы все файлы для базового проекта с TypeORM:

  • .gitignore

  • package.json

  • README.md

  • tsconfig.json

  • src/entity/User.ts

  • src/index.ts

Запустите npm install для установки зависимостей. Затем запустите приложение командой npm start.

Все файлы создаются в текущей директории. Для генерации в отдельной директории используйте параметр --name:

typeorm init --name my-project

Укажите конкретную СУБД через параметр --database:

typeorm init --database mssql

Для генерации проекта на ESM используйте --module esm:

typeorm init --name my-project --module esm

Можно также создать базовый проект с Express:

typeorm init --name my-project --express

При использовании Docker сгенерируйте файл docker-compose.yml:

typeorm init --docker

typeorm init — самый простой и быстрый способ настройки TypeORM проекта.

Создание новой сущности

Используйте CLI для создания сущности:

typeorm entity:create path-to-entity-dir/entity

Подробнее о сущностях.

Создание нового подписчика

Используйте CLI для создания подписчика:

typeorm subscriber:create path-to-subscriber-dir/subscriber

Подробнее о подписчиках.

Управление миграциями

  • typeorm migration:create - создать пустую миграцию

  • typeorm migration:generate - сгенерировать миграцию на основе сравнения сущностей с актуальной схемой БД

  • typeorm migration:run - выполнить все миграции

  • typeorm migration:revert - откатить последнюю миграцию

  • typeorm migration:show - показать все миграции с их статусом выполнения

Подробнее о миграциях.

Синхронизация схемы базы данных

Для синхронизации схемы базы данных используйте:

typeorm schema:sync

Будьте осторожны при использовании в production — синхронизация схемы может привести к потере данных при неосторожном использовании. Всегда проверяйте SQL-запросы перед выполнением в рабочей среде.

Просмотр SQL-запросов синхронизации без выполнения

Чтобы проверить SQL-запросы, которые выполнит schema:sync, используйте:

typeorm schema:log

Удаление схемы базы данных

Для полного удаления схемы базы данных используйте:

typeorm schema:drop -- -d path-to-datasource-config

Будьте крайне осторожны в production — эта команда полностью удалит все данные из базы.

Выполнение произвольных SQL-запросов

Можно выполнять любые SQL-запросы напрямую через базу данных с помощью:

typeorm query "SELECT * FROM USERS"

Очистка кэша

При использовании кэширования в QueryBuilder иногда требуется очистить весь кэш. Это можно сделать командой:

typeorm cache:clear

Проверка версии

Текущую версию TypeORM (локальную и глобальную) можно проверить командой:

typeorm version