Hexlet / hexlet-correction

Typo Reporter
https://fixit.hexlet.io/
GNU Affero General Public License v3.0
41 stars 72 forks source link

Bug: Workspace почему-то должен иметь уникальное имя #264

Closed bazilval closed 3 weeks ago

bazilval commented 1 month ago

Summary

На данный момент workspace не может быть создан с одним и тем же именем, что кажется довольно странным, учитывая, что пользователь может захотеть назвать свою доску как угодно и не должен учитывать названия досок у всех остальных. Для уникальности есть id.

При чём попытка создания доски с тем же названием, никак не перехватывается

Reproduction steps

1. Создать доску с любым названием
2. Создать ещё одну с тем же названием
3. Словить необработанное исключение

Expected result

Доска создаётся без проблем

Actual result

Выводится необработанная ошибка на сервере

Browsers

No response

OS

No response

kitdim commented 1 month ago

возьму

kitdim commented 1 month ago

Я багу поправил, всё делал через миграции. Локально всё запускается, и вортспейсы с одинаковым названием создавать можно, но чо-то при билдинге такая вот ошибка почти на всех тестах, как я понимаю связана с миграцией: AccountRepositoryIT > getAccountByEmail(String) > [3] email=test103@gmail.com FAILED java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:142 Caused by: org.springframework.beans.factory.BeanCreationException at AbstractAutowireCapableBeanFactory.java:1762 Caused by: liquibase.exception.UnexpectedLiquibaseException at SpringLiquibase.java:304 Caused by: liquibase.exception.CommandExecutionException at CommandScope.java:253 Caused by: liquibase.exception.LiquibaseException at ChangeLogIterator.java:151 Caused by: liquibase.exception.MigrationFailedException at ChangeSet.java:797 Caused by: liquibase.exception.DatabaseException at JdbcExecutor.java:470 Caused by: org.postgresql.util.PSQLException at QueryExecutorImpl.java:2676

bazilval commented 1 month ago

пушни на репу, чтобы посмотреть что там у тебя

kitdim commented 1 month ago

пушни на репу, чтобы посмотреть что там у тебя

https://github.com/Hexlet/hexlet-correction/pull/270

bazilval commented 1 month ago

@kitdim привет! А что за constraintName такое у тебя? "uk_br8l0q43h1ygdohbp4htocj3h"

Я вот в самом первом changeSet нашёл такой констрейнт на уникальность имени доски

    <changeSet id="20211904104233167-3" author="system">
        <addUniqueConstraint columnNames="name" constraintName="UC_WORKSPACE_NAME" tableName="workspace" />
    </changeSet>

Может попробовать это имя подставить?

kitdim commented 4 weeks ago

@bazilval привет) А я его в бд в схеме нашел. Да ты прав, там плюс добавил отключение workspace_name_key. После этого всё ок, ща изменение запулю

kitdim commented 4 weeks ago

@bazilval cпасибо!

bazilval commented 4 weeks ago

@kitdim а что за workspace_name_key?

kitdim commented 4 weeks ago

Похоже констрейнтов для name было два. Если отключить только UC_WORKSPACE_NAME, последуется провера на workspace_name_key, и появляется такая же ошибка как с UC_WORKSPACE_NAME image

bazilval commented 3 weeks ago

@kitdim хм, а ты не нашёл в какой момент его добавляли и зачем?

kitdim commented 3 weeks ago

@bazilval добавили в этом коммите сама миграция вот

bazilval commented 3 weeks ago

@kitdim странно как-то, да? вроде в самом коммите добавляют уникальность URL а в миграции добавляют дублирующую уникальность имени

kitdim commented 3 weeks ago

@bazilval ага. Возможно это сделано специально, чтобы в будующем поправили)

kitdim commented 3 weeks ago

@fey привет! Закрываем?