id summary reporter owner description type status component version severity resolution keywords cc stage has_patch needs_docs needs_tests needs_better_patch easy ui_ux 15243 commit_unless_managed clarification for multiple databases in the docs toqueteos@… Jason Kotenko "First ticket of mine here guys. ( Please be nice ) Today I was working with a two databases setup: '''default''' and '''my_other_db'''. I wrote a function to execute some queries on '''my_other_db'''. Example code: {{{#!python def email_update(email, password): """""" Update a email account from the database with a new password. """""" cursor = connections[""my_other_db""].cursor() query = ""UPDATE users SET password=ENCRYPT(%s) WHERE email=%s"" # Perform the query cursor.execute(query, [password, email]) # Hey Django, ensure changes are done to the DB transaction.commit_unless_managed() }}} So the problem is that the last line does '''nothing'''. Well, it does something, a rollback on the query because I'm not hitting the right db, the one I chose from the '''connections''' dict. Specifying, again, the database alias name on the commit_unless_managed method, with the '''using''' keyword argument makes the function to work. Example: {{{#!python transaction.commit_unless_managed(using=""my_other_db"") }}} I think, a tiny one-two lines note placed below the third paragraph of the section called '''Executing custom SQL directly''' at http://docs.djangoproject.com/en/dev/topics/db/sql/#executing-custom-sql-directly should be ok. Hope it helps. ---- Related: Where's the DRY principle of Django here? That transaction should look for the database alias used with the cursor, right?" closed Documentation 1.2 fixed transaction, commit_unless_managed, raw sql, multiple databases, easy-pickings toqueteos@… Jason Kotenko Accepted 1 0 0 0 0 0