I found a (dummy) solution for this. The error was occurring when a Signal 
from post_save of User model was being triggered. In that signal I was 
performing a SomeModel.objects.get_or_create.

So, apparently the get_or_create method was implemented using transactions 
with savepoints enabled. All I had to do was check if the Signal is called 
when the instance of SomeModel is created and use SomeMode.objects.create 
instead of SomeMode.objects.get_or_create.

But it still sucks tho, because everytime I use @transaction.atomic I have 
to pass a savepoint=False parameter to it. The sucky part is, if I'm 
undertanding it right, I have to implement my own database backend only to 
disable savepoints by default on all transactions and I don't thinks it 
worths the effort.

Well, anyway, if someone already knows where I can find a MySQL NDBCLUSTER 
implementation of a django database backend I would be glad. Thank you all!

Em quarta-feira, 22 de janeiro de 2020 17:19:42 UTC-3, Victor Guimarães 
Nunes escreveu:
>
> Hi,
>
> I'm having some trouble setting up a Django project with a MySQL NDB 
> Cluster. I found I had to set the storage engine on 
> DATABASES['default']['OPTIONS'] and I did it.
>
> DATABASES = {
> 'default': config('DATABASE_URL', cast=db_url)
> }
>
> # Check if mysql database engine is NDBCLUSTER
> if config('USE_NDBCLUSTER', cast=bool, default=False):
> DATABASES['default'].update({
> 'OPTIONS': {
> 'init_command': 'SET default_storage_engine=NDBCLUSTER;',
> }
> })
>
> but almost always when I try to perform some write action on the database 
> I get the following esception:
>
> OperationalError at /admin/auth/user/add/
>
> (1178, "The storage engine for the table doesn't support SAVEPOINT")
>
>
> I don't quite get what I supposed to do about once the cluster demands a 
> NDBCLUSTER storage engine to work properly and I don't have any ideia of 
> what is savepoints and where/how I can disabled it.
>
> Any thoughts about this issue?
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/e92ee650-63da-4c7d-846b-fa19b37a37dd%40googlegroups.com.

Reply via email to