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 #2711 See merge request baserow/baserow!3050
This commit is contained in:
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
|
@ -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(
|
||||
|
|
|
@ -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
|
|
@ -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"
|
||||
}
|
Loading…
Reference in a new issue