-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
soft deletes #22
soft deletes #22
Conversation
Coverage Report
Summary
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Еще нужно также софт делить учесть в релейшенах
Посмотри, как это реализовано в аутхе, там хорошо прописано
rating_api/routes/lecturer.py
Outdated
@@ -188,7 +188,7 @@ async def delete_lecturer( | |||
for lecturer_user_comment in lecturer_user_comments: | |||
LecturerUserComment.delete(lecturer_user_comment.id, session=db.session) | |||
|
|||
Lecturer.delete(session=db.session, id=id) | |||
Lecturer.update(session=db.session, id=id, is_deleted=True) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Тоже не требуется
Идея софтделитов в том, что можно, не меняя запросов в базу, ставить нужный флажок вместо реального удаления Опять же, данную логику можно прочитать в базовом декларативном классе Там эта логика уже прописана в методах |
Да, и надо nullable=False проставить, а также учесть потом это в миграции, чтобы база не упала |
Хоть у нас в базе нет сейчас записей, но все равно |
op.add_column('lecturer', sa.Column('is_deleted', sa.Boolean(), nullable=False, server_default=sa.false())) | ||
op.add_column( | ||
'lecturer_user_comment', sa.Column('is_deleted', sa.Boolean(), nullable=False, server_default=sa.false()) | ||
) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nullable False
надо тогда докинуть update на старые строки в базе, чтоб не упало
lecturer_id: Mapped[int] = mapped_column( | ||
Integer, | ||
ForeignKey("lecturer.id"), | ||
primary_join="and_(Comment.lecturer_id==Lecturer.id, not_(Lecturer.is_deleted))", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
не туда вписал)
lecturer_id это не отношение
надо джоин вписать в lecturer который ниже
еще надо добавить тесты) |
Еще не доделано |
💩 Code linting failed, use |
Изменения
Детали реализации
Check-List
black
иisort
для Back-End илиPrettier
для Front-End?