Ticket #1030 (closed defect: fixed)

Opened 3 years ago

Last modified 3 years ago

00074f0d28e7 introduces a bug in MySQL

Reported by: klaas@… Owned by: andrew
Priority: major Milestone: 1.0
Component: commands Version: mercurial
Keywords: Cc:

Description

https://bitbucket.org/andrewgodwin/south/changeset/00074f0d28e7 introduces a bug:

There is no South database module 'south.db.mysql' for your database. Please either choose a supported database, check for SOUTH_DATABASE_ADAPTER[S] settings, or remove South from INSTALLED_APPS.

The issue is not yet present in
https://bitbucket.org/andrewgodwin/south/changeset/64fdcc52cd01

Haven't looked into it any deeper than drilling down to the offending commit

Change History

comment:1 Changed 3 years ago by andrew

Could you please run this in ./manage.py shell:

"import south.db.mysql"

and paste the traceback?

comment:2 Changed 3 years ago by andrew

  • Status changed from new to infoneeded
  • Version changed from unknown to tip
  • Milestone set to 1.0

comment:3 Changed 3 years ago by nick@…

  • Status changed from infoneeded to assigned

I am also getting "There is no South database module 'south.db.postgresql_psycopg2' for your database.", despite South working up to about a week ago. If I comment out South from the INSTALLED_APPS

In [1]: import south.db.postgresql_psycopg2
There is no South database module 'south.db.postgresql_psycopg2' for your database. Please either choose a supported database, check for SOUTH_DATABASE_ADAPTER[S] settings, or remove South from INSTALLED_APPS.
---------------------------------------------------------------------------
SystemExit                                Traceback (most recent call last)

<ipython console> in <module>()

south/south/db/__init__.py in <module>()
     72         ) % (module_name,)
     73     )
---> 74     sys.exit(1)
     75 
     76 # Finally, to make old migrations work, keep 'db' around as the default database


SystemExit: 1
Type %exit or %quit to exit IPython (%Exit or %Quit do so unconditionally).

comment:4 follow-up: ↓ 5 Changed 3 years ago by andrew

  • Status changed from assigned to infoneeded

Please post the traceback of the actual error, rather than the SystemExit? call.

comment:5 in reply to: ↑ 4 Changed 3 years ago by nick@…

  • Status changed from infoneeded to assigned

Replying to andrew:

Please post the traceback of the actual error, rather than the SystemExit? call.

This is all I can get out of it, with South added to INSTALLED_APPS nothing will work. No shell, no runserver, no sync, no migrate. Everything just says "There is no South database module 'south.db.postgresql_psycopg2' for your database. Please either choose a supported database, check for SOUTH_DATABASE_ADAPTER[S] settings, or remove South from INSTALLED_APPS." in a single line and fails.

comment:6 follow-up: ↓ 7 Changed 3 years ago by andrew

Can you try importing the module from a python shell?

comment:7 in reply to: ↑ 6 Changed 3 years ago by nick@…

Replying to andrew:

Can you try importing the module from a python shell?

That's what I tried above, using IPython. It just goes to the system exit call straight away.

Nick

comment:8 follow-up: ↓ 9 Changed 3 years ago by andrew

  • Status changed from assigned to infoneeded

Well there's not much I can do without more debugging info - I've tested locally and (obviously) it all works fine here. What version of Django are you using?

comment:9 in reply to: ↑ 8 Changed 3 years ago by Nick Jones <nick@…>

  • Status changed from infoneeded to assigned

Replying to andrew:

Well there's not much I can do without more debugging info - I've tested locally and (obviously) it all works fine here. What version of Django are you using?

Replying to andrew:

Well there's not much I can do without more debugging info - I've tested locally and (obviously) it all works fine here. What version of Django are you using?

I've just dropped into the code and taken out the try statement and have a (much) more useful debug:

src/south/south/db/generic.py", line 16, in <module>
    from django.utils.functional import cached_property
ImportError: cannot import name cached_property

According to code.djangoproject.com, cached_property will not appear until Django 1.4. Apologies if I missed that as a requirement for this version.

Nick

comment:10 Changed 3 years ago by andrew

  • Status changed from assigned to closed
  • Resolution set to fixed

Ah, it's an import I missed during a code review. Have pushed a change that fixes it.

comment:11 Changed 3 years ago by Nick Jones <nick@…>

Brilliant, thanks Andrew

Note: See TracTickets for help on using tickets.