Перейти до вмісту

База даних і ORM

SnakeFlow сам визначає ORM або інструмент міграцій за залежностями проєкту та показує відповідні дії в меню Database.

Автовизначені інструменти

МоваЩо виявляється
Node.jsPrisma, Drizzle ORM, TypeORM, Knex
PythonAlembic/SQLAlchemy, Django ORM, Tortoise/aerich
Goent, goose, golang-migrate
RustDiesel, SeaORM, sqlx-cli
PHPLaravel Artisan, Doctrine Migrations
.NETEntity Framework Core (dotnet ef)
RubyRails ActiveRecord (rails db:*)
JavaFlyway, Liquibase (Maven і Gradle)

Власні дії

Повністю замінити автовизначення:

"devManager.database.actions": [
{ "label": "Prisma Studio", "command": "${exec} prisma studio", "icon": "database", "cwd": "${dir}" },
{ "label": "Generate Client", "command": "${exec} prisma generate", "icon": "zap", "cwd": "${dir}" },
{ "label": "Migrate Dev", "command": "${exec} prisma migrate dev", "icon": "arrow-up", "cwd": "${dir}" },
{ "label": "DB Reset", "command": "${exec} prisma migrate reset", "icon": "trash", "cwd": "${dir}", "dangerous": true }
]

Підстановка змінних

ЗміннаЗначення
${exec}Менеджер пакетів: npx / pnpm exec / yarn / bunx
${name}Назва проєкту з налаштувань
${dir}Абсолютний шлях до кореня проєкту

Поля дії

ПолеОпис
labelТекст у меню
commandShell-команда
iconCodicon VS Code (опційно)
cwdРобоча директорія (за замовчуванням — корінь)
dangeroustrue — підтвердження перед запуском

Приклад Django

"devManager.database.actions": [
{ "label": "Migrate", "command": "python manage.py migrate", "cwd": "${dir}/backend" },
{ "label": "Make Migrations", "command": "python manage.py makemigrations", "cwd": "${dir}/backend" },
{ "label": "DB Shell", "command": "python manage.py dbshell", "cwd": "${dir}/backend" }
]

Приклад Rails

"devManager.database.actions": [
{ "label": "Migrate", "command": "rails db:migrate" },
{ "label": "Rollback", "command": "rails db:rollback" },
{ "label": "Seed", "command": "rails db:seed" },
{ "label": "DB Drop", "command": "rails db:drop", "dangerous": true }
]