diff --git a/server/mergin/sync/public_api_v2_controller.py b/server/mergin/sync/public_api_v2_controller.py index ec3fd260..e503edad 100644 --- a/server/mergin/sync/public_api_v2_controller.py +++ b/server/mergin/sync/public_api_v2_controller.py @@ -289,9 +289,11 @@ def create_project_version(id): db.session.add(pv) db.session.add(project) db.session.commit() + # let's move uploaded files where they are expected to be - temp_files_dir = os.path.join(upload.upload_dir, "files", v_next_version) - os.renames(temp_files_dir, version_dir) + if to_be_added_files or to_be_updated_files: + temp_files_dir = os.path.join(upload.upload_dir, "files", v_next_version) + os.renames(temp_files_dir, version_dir) logging.info( f"Push finished for project: {project.id}, project version: {v_next_version}, upload id: {upload.id}." diff --git a/server/mergin/tests/test_public_api_v2.py b/server/mergin/tests/test_public_api_v2.py index 68df0949..1d5e0d7c 100644 --- a/server/mergin/tests/test_public_api_v2.py +++ b/server/mergin/tests/test_public_api_v2.py @@ -174,6 +174,21 @@ def test_project_members(client): 204, None, ), + # only delete files + ( + { + "version": "v1", + "changes": { + "added": [], + "removed": [ + file_info(test_project_dir, "base.gpkg"), + ], + "updated": [], + }, + }, + 201, + None, + ), # broken .gpkg file ( {"version": "v1", "changes": _get_changes_with_diff_0_size(test_project_dir)},