author: @kawam tags:#postgres#odoo


Ketika ada kebutuhan untuk menjaga integritas data, silahkan gunakan savepoint.

Savepoint berguna untuk melakukan ROLLBACK jika terjadi error ataupun kesalahan pada data. Pada dasarnya Odoo akan melakukan rollback data ketika terjadi exception di code kita. Namun, ada beberapa kasus ketika kita perlu menggunakan try catch, sehingga rollback otomatis ini tidak berjalan.

Untuk melakukan rollback silahkan gunakan kode berikut:

try:
	cr.execute('SAVEPOINT shipment_savepoint')
	# DO STUFF HERE
	cr.execute('RELEASE SAVEPOINT shipment_savepoint')
except Exception as e:
	cr.execute('ROLLBACK TO SAVEPOINT shipment_savepoint')
	# handle error