1
0
Fork 0
mirror of https://gitlab.com/bramw/baserow.git synced 2025-03-17 05:52:42 +00:00

Merge branch '2711-snapshot-issue' into 'develop'

Snapshot issue

Closes 

See merge request 
This commit is contained in:
Przemyslaw Kukulski 2025-01-22 08:19:35 +00:00
commit b139a90333
3 changed files with 55 additions and 1 deletions
backend
src/baserow/contrib/database/fields/utils
tests/baserow/contrib/database/import_export
changelog/entries/unreleased/bug

View file

@ -59,7 +59,7 @@ class DeferredForeignKeyUpdater:
setattr(
field_to_bulk_update,
attr_name,
id_mapping[mapping_key][desired_field_id],
id_mapping.get(mapping_key, {}).get(desired_field_id, None),
)
if len(fields_to_bulk_update) > 0:
field_model_class.objects.bulk_update(

View file

@ -0,0 +1,47 @@
import pytest
from baserow.contrib.database.application_types import DatabaseApplicationType
from baserow.contrib.database.fields.handler import FieldHandler
from baserow.contrib.database.fields.models import RollupField
from baserow.contrib.database.table.handler import TableHandler
from baserow.core.registries import ImportExportConfig
@pytest.mark.import_export_workspace
@pytest.mark.django_db()
def test_import_export_works_with_invalid_rollup_field(data_fixture):
user = data_fixture.create_user()
table_a, table_b, link_a_to_b = data_fixture.create_two_linked_tables(user=user)
rollup_field = FieldHandler().create_field(
user,
table_a,
"rollup",
name="rollup_field",
through_field_name=link_a_to_b.name,
target_field_id=table_b.get_primary_field().id,
rollup_function="min",
)
TableHandler().delete_table(user, table_b)
rollup_field.refresh_from_db()
assert rollup_field.formula_type == "invalid"
import_export_config = ImportExportConfig(
include_permission_data=False, reduce_disk_space_usage=True
)
exported_db = DatabaseApplicationType().export_serialized(
table_a.database, import_export_config
)
assert (
"references the deleted or unknown field"
in exported_db["tables"][0]["fields"][1]["error"]
)
imported_app = DatabaseApplicationType().import_serialized(
table_a.database.workspace, exported_db, import_export_config, {}
)
imported_field = RollupField.objects.get(table=imported_app.table_set.first())
assert imported_field.formula_type == "invalid"
assert "references the deleted or unknown field" in imported_field.error

View file

@ -0,0 +1,7 @@
{
"type": "bug",
"message": "Fix import/export/snapshot issue with broken formulas",
"issue_number": 2711,
"bullet_points": [],
"created_at": "2025-01-15"
}