Skip to content

Commit 40a2055

Browse files
committed
Allow DjangoConnector to restore for any database engine
1 parent 9ed79ab commit 40a2055

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

dbbackup/management/commands/dbrestore.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,8 +143,9 @@ def _check_metadata(self, filename):
143143

144144
backup_engine = metadata.get("engine")
145145
current_engine = settings.DATABASES[self.database_name]["ENGINE"]
146+
backup_connector = metadata.get("connector")
146147

147-
if backup_engine != current_engine:
148+
if backup_engine != current_engine and backup_connector != "dbbackup.db.django.DjangoConnector":
148149
msg = (
149150
f"Backup file '{filename}' was created with database engine '{backup_engine}', "
150151
f"but you are restoring to a database using '{current_engine}'. "

tests/commands/test_dbrestore_metadata.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,17 @@ def test_local_file_metadata_mismatch(self):
7272
with pytest.raises(CommandError):
7373
self.command._check_metadata("local_backup.dump")
7474

75+
def test_django_connector_mismatch_allowed(self):
76+
# Setup metadata with different engine but DjangoConnector
77+
metadata = {
78+
"engine": "django.db.backends.postgresql",
79+
"connector": "dbbackup.db.django.DjangoConnector",
80+
}
81+
self.command.storage.read_file.return_value = Mock(read=lambda: json.dumps(metadata))
82+
83+
# Should not raise
84+
self.command._check_metadata("backup.dump")
85+
7586

7687
class DbrestoreConnectorOverrideTest(TestCase):
7788
def setUp(self):

0 commit comments

Comments
 (0)