Skip to content

Commit 09939cb

Browse files
Minor database-related fixes (#241)
1 parent 1a93b49 commit 09939cb

File tree

3 files changed

+11
-6
lines changed

3 files changed

+11
-6
lines changed

CHANGELOG.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@ Please use [this](https://docs.gitlab.com/ee/development/changelog.html) documen
88

99
* context: Fixed crash when calling `fire_hook` method.
1010
* context: Fixed `HookConfig.atomic` flag, which was ignored in `fire_hook` method.
11-
* index: Fixed loading handler callbacks from nested packages (@veqtor)
11+
* database: Create missing tables even if `Schema` model is present.
12+
* database: Fixed excess increasing of `decimal` context precision.
13+
* index: Fixed loading handler callbacks from nested packages ([@veqtor](https://github.com/veqtor)).
1214

1315
### Other
1416

src/dipdup/dipdup.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -439,10 +439,11 @@ async def _initialize_schema(self) -> None:
439439
except KeyError:
440440
await self._ctx.reindex(ReindexingReason.SCHEMA_HASH_MISMATCH)
441441

442+
# NOTE: Call even if Schema is present; there may be new tables
443+
await generate_schema(conn, schema_name)
442444
schema_hash = get_schema_hash(conn)
443445

444446
if self._schema is None:
445-
await generate_schema(conn, schema_name)
446447
await self._ctx.fire_hook('on_reindex')
447448

448449
self._schema = Schema(

src/dipdup/utils/database.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -114,11 +114,13 @@ def set_decimal_context(package: str) -> None:
114114
for _, model in iter_models(package):
115115
for field in model._meta.fields_map.values():
116116
if isinstance(field, DecimalField):
117-
context.prec = max(context.prec, field.max_digits + field.max_digits)
118-
if prec < context.prec:
119-
_logger.warning('Decimal context precision has been updated: %s -> %s', prec, context.prec)
117+
prec = max(prec, field.max_digits)
118+
119+
if context.prec < prec:
120+
_logger.warning('Decimal context precision has been updated: %s -> %s', context.prec, prec)
121+
context.prec = prec
120122
# NOTE: DefaultContext used for new threads
121-
decimal.DefaultContext.prec = context.prec
123+
decimal.DefaultContext.prec = prec
122124
decimal.setcontext(context)
123125

124126

0 commit comments

Comments
 (0)