fix: database unique constraints (#2594)

* fixed missing migration name

* added unique constraints to all m2m tables

* fixed bug trying to create duplicate tags

* added more unique constraints

* fixed duplicate seeder data

* updated tests

* fixed seed rollback error
This commit is contained in:
Michael Genson
2023-10-07 14:23:13 -05:00
committed by GitHub
parent 247a4de283
commit a98e863bca
13 changed files with 222 additions and 15 deletions

View File

@@ -164,10 +164,15 @@ class RepositoryGeneric(Generic[Schema, Model]):
return eff_schema.from_orm(result)
def create(self, data: Schema | BaseModel | dict) -> Schema:
data = data if isinstance(data, dict) else data.dict()
new_document = self.model(session=self.session, **data)
self.session.add(new_document)
self.session.commit()
try:
data = data if isinstance(data, dict) else data.dict()
new_document = self.model(session=self.session, **data)
self.session.add(new_document)
self.session.commit()
except Exception:
self.session.rollback()
raise
self.session.refresh(new_document)
return self.schema.from_orm(new_document)