Size: a a a

NestJS — русскоязычное сообщество

2021 January 31

IF

Igor Filippov in NestJS — русскоязычное сообщество
связь вот так прописана
источник

NN

Noname Noname in NestJS — русскоязычное сообщество
Igor Filippov
Подскажите, как удалить энтити со всеми её связями? Сейчас ругается на - violates foreign key constraint
попробуй оставить только onDelete
источник

IF

Igor Filippov in NestJS — русскоязычное сообщество
Noname Noname
попробуй оставить только onDelete
Попробовал, тоже самое
источник

🏡K

🏡 ILshat Khamitov in NestJS — русскоязычное сообщество
В базе задай чтобы каскадом сносилось
источник

🏡K

🏡 ILshat Khamitov in NestJS — русскоязычное сообщество
Каскад он делет, это я так понял нужно при создании из ентити миграции или синхронизации с базой
источник

🏡K

🏡 ILshat Khamitov in NestJS — русскоязычное сообщество
Но если таблицу создал без каскада то потом хоть пиши хоть нет, толку нет, через синхронизацию только если орм добавит, либо миграцию сделай для каскада
источник

SS

Sergey Shumchenko in NestJS — русскоязычное сообщество
Igor Filippov
связь вот так прописана
когда идет настройка связей не на айдишное поле, нужно в Entity задавать foreignKey
источник

DB

Dilame 🎩 Bowzee ⠀⠀⠀ོ... in NestJS — русскоязычное сообщество
источник

И

Илья | 😶 ☮️... in NestJS — русскоязычное сообщество
Кто-то делал имплементацию в духе AuthGuard, но со своей логикой, не связанной с авторизацией ?
источник
2021 February 01

IF

Igor Filippov in NestJS — русскоязычное сообщество
🏡 ILshat Khamitov
Но если таблицу создал без каскада то потом хоть пиши хоть нет, толку нет, через синхронизацию только если орм добавит, либо миграцию сделай для каскада
То есть мне надо с опцией onCascade: "DELETE" пересоздать таблицу юзер?
источник

IF

Igor Filippov in NestJS — русскоязычное сообщество
Sergey Shumchenko
когда идет настройка связей не на айдишное поле, нужно в Entity задавать foreignKey
Вот это особо не понял
источник

K

Konstantin in NestJS — русскоязычное сообщество
У меня вопрос, но не по Несту, а больше по микросервисам самим.

Паттерн говорить дб для каждого сервиса. Окей.

Есть вот сервис каталога товаров.
Есть сервис выполненных заказов.
Есть естественно сервис юзеров.


Нормально ли сервис выполненных заказов будет дергать сервис юзеров и сервис каталога?  Тогда сервисы буду связанны? Это же анти паттерн.

Окей, можно использовать Реббит или Кафку и писать в базу заказов уникальных юзеров которые сделали заказ и уникалные товары которые были заказаны?
источник

K

Konstantin in NestJS — русскоязычное сообщество
Или в реальности официальный паттерн не работает?
источник

D

Dmitriy in NestJS — русскоязычное сообщество
Igor Filippov
То есть мне надо с опцией onCascade: "DELETE" пересоздать таблицу юзер?
Привет! Это не опция, а свойство внешнего ключа. Миграцией пересоздай его
источник

IF

Igor Filippov in NestJS — русскоязычное сообщество
Dmitriy
Привет! Это не опция, а свойство внешнего ключа. Миграцией пересоздай его
Уже вроде получилось
источник

IF

Igor Filippov in NestJS — русскоязычное сообщество
Всем спасибо
источник

D

Dmitriy in NestJS — русскоязычное сообщество
Igor Filippov
Уже вроде получилось
А, ну отлично
источник

SS

Sergey Shumchenko in NestJS — русскоязычное сообщество
Igor Filippov
Вот это особо не понял
Немножко напутал
Это если у тебя допустим есть связь @ManyToOne в сущности и тебе нужно заджойнить с другой таблицы какое-то поле но не айдишник, то делается через @JoinColumn по айдишнику (под капотом я так понял это все равно через foreignKey делается)
источник

NN

Noname Noname in NestJS — русскоязычное сообщество
Sergey Shumchenko
Немножко напутал
Это если у тебя допустим есть связь @ManyToOne в сущности и тебе нужно заджойнить с другой таблицы какое-то поле но не айдишник, то делается через @JoinColumn по айдишнику (под капотом я так понял это все равно через foreignKey делается)
Либо указать явно relations в опциях find
источник

AL

Anton Larichev in NestJS — русскоязычное сообщество
Konstantin
У меня вопрос, но не по Несту, а больше по микросервисам самим.

Паттерн говорить дб для каждого сервиса. Окей.

Есть вот сервис каталога товаров.
Есть сервис выполненных заказов.
Есть естественно сервис юзеров.


Нормально ли сервис выполненных заказов будет дергать сервис юзеров и сервис каталога?  Тогда сервисы буду связанны? Это же анти паттерн.

Окей, можно использовать Реббит или Кафку и писать в базу заказов уникальных юзеров которые сделали заказ и уникалные товары которые были заказаны?
Паттерн где для одного сервиса - 1 база, распространён и имеет преимущество в виде возможности разнести нагрузку на базу, всегда одного ответственного за базу, но и имеет минусы:
- Необходимость управлять группой транзакций, если она затрагивает несколько сервисов
- Зависимости между микросервисами, которые сложно отследить.
- Не удобное использование данных для аналитики, так как они разнесены.

Для уменьшения связанности и управления транзакциями лучше всего использовать паттерн saga, где есть управляющий сервис, который оркестрирует микросервисы. Это может быть даже само API, но лучше делать отдельный сервис под конкретные доменные области, чтобы например управление заказами не замешивались с статьями для сайта.

Можно обойтись без управляющего сервиса, тогда саги нужно вносить внутрь самих сервисов и каждый инициализирует свою сагу.

Для обмена также рекомендую Kafka или RMQ (сам всегда использую RMQ). Главное увлекаясь микросервисами не сделать nano сервисы) Для этого советую почитать про DDD.
источник