Skip to content

Commit 4411c00

Browse files
Fixed schema wipe command crash due to dipdup_meta table being always immune (#803)
1 parent a42384f commit 4411c00

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ The format is based on [Keep a Changelog], and this project adheres to [Semantic
1414

1515
- cli: Fixed `config export --full` command showing original config.
1616
- cli: Keep the last 100 reports only.
17+
- cli: Fixed `schema wipe` command crash due to `dipdup_meta` table being always immune.
1718
- config: Don't create empty SentryConfig if DSN is not set.
1819
- context: Share internal state between context instances.
1920
- jobs: Don't add jobs before scheduler is started.

src/dipdup/cli.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -464,14 +464,17 @@ async def schema_wipe(ctx: click.Context, immune: bool, force: bool) -> None:
464464
models = f'{config.package}.models'
465465

466466
# NOTE: Don't be confused by the name of `--immune` flag, we want to drop all tables if it's set.
467-
immune_tables = set() if immune else config.database.immune_tables | {'dipdup_meta'}
467+
immune_tables = set() if immune else config.database.immune_tables
468468

469-
if isinstance(config.database, SqliteDatabaseConfig) and immune_tables:
469+
if isinstance(config.database, SqliteDatabaseConfig):
470470
message = 'Support for immune tables in SQLite is experimental and requires `advanced.unsafe_sqlite` flag set'
471471
if config.advanced.unsafe_sqlite:
472+
immune_tables.add('dipdup_meta')
472473
_logger.warning(message)
473-
else:
474+
elif immune_tables:
474475
raise ConfigurationError(message)
476+
else:
477+
immune_tables.add('dipdup_meta')
475478

476479
if not force:
477480
try:

0 commit comments

Comments
 (0)