Modifying data in a QGIS layer is often the moment when beginner plugin developers start feeling nervous: What if I break something?
That concern is completely understandable—and actually a good sign.
The good news is that QGIS provides simple and reliable mechanisms for modifying data safely, as long as you follow a few essential rules.
This guide explains how to use editing mode, commit or cancel changes, and update layers and attributes without putting your data at risk.
Why Editing Data Feels Risky
Reading data from a layer is completely safe.
You can:
- iterate through features,
- read attribute values,
- inspect geometries,
without modifying anything.
Risks only appear when you:
- change attribute values,
- add or delete features,
- modify the structure of a layer.
As long as a layer is not in editing mode, no actual changes are written to the data source.
Editing Mode: Your First Line of Protection
QGIS requires an explicit switch to editing mode before any modification can take place.
layer.startEditing()
This design choice is intentional.
Editing mode:
- allows changes to be cancelled,
- prevents accidental modifications,
- forces developers to make a conscious decision before updating data.
Until changes are committed, everything remains reversible.
Commit or Roll Back?
Once modifications have been made, two options are available:
layer.commitChanges() # save changes
or
layer.rollBack() # cancel changes
A simple but important rule:
Commit changes only when everything has worked correctly.
Roll back changes as soon as a logical or processing error is detected.
This approach helps preserve data integrity and avoids leaving layers in an inconsistent state.
Validate Before You Modify
Before making any changes, your plugin should verify that:
- the layer is a vector layer,
- the layer is not read-only,
- the required fields exist,
- the data structure matches your expectations.
These checks are part of your business logic, not something QGIS does automatically.
The earlier an error is detected, the easier it is to handle safely.
Make Small, Explicit Changes
A good rule for beginner plugin developers is:
Make few changes, but make them clear and predictable.
Try to avoid:
- implicit modifications,
- silent processing,
- actions that cannot easily be explained to the user.
A reliable plugin is one whose behavior can be described in a single sentence.
If you cannot clearly explain what your plugin changes, your users probably will not understand it either.
QGIS Protects Your Data—If You Let It
QGIS never applies modifications without explicit instructions.
The platform is designed to help protect data integrity.
As long as you follow the cycle:
Validate → Edit → Commit or Roll Back
your data remains under control.
Most data-loss problems are not caused by QGIS itself, but by code that skips one of these steps.
Key Takeaways
Before moving on, remember these essential ideas:
- Reading a layer is safe.
- Modifying a layer requires editing mode.
- Commit and rollBack are your safety nets.
- Caution is a strength, not a limitation.
This short guide can serve as a reference whenever you start modifying data in a QGIS plugin.
The safest plugins are not the ones with the most code—they are the ones that respect the data they modify.