2387: Review Board upgrades break on Django 1.1.4

ste****@gallaghe********* (Google Code) (Is this you? Claim this profile.)
chipx86
chipx86
March 18, 2012
What version are you running?
Review Board 1.5.7

What's the URL of the page containing the problem?
/usr/lib/python2.4/site-packages/reviewboard/changedescs/evolutions/__init__.py

What steps will reproduce the problem?
1. Attempt to upgrade from 1.5.6 to 1.5.7 on an installation using Django 1.1.4 (example: Red Hat Enterprise Linux 5.7)
2. Evolutions fail with an error: Settings has no member 'DATABASES'



What is the expected output? What do you see instead?

Evolutions fail with an error: Settings has no member 'DATABASES'
reviewboard/changedescs/evolutions/__init__.py is not compatible with Django 1.1.x, only with 1.2.x and later. This should be easy to detect (check for the existence of Settings.DATABASE_ENGINE).


What operating system are you using? What browser?
Red Hat Enterprise Linux 5.7

Please provide any additional information below.

I was able to get the upgrade to work on my deployment because we use Postgres (so I just commented out this mysql-specific code). Others will not be so lucky.
chipx86
#1 chipx86
Nothing was introduced in 1.5.7 that would break this. This change was made in 1.5.6.

Still, we could fix this. It's the first report I've had of it, though.
  • +Confirmed
  • +Milestone-Release1.5.x
  • +chipx86
#2 ste****@gallaghe********* (Google Code) (Is this you? Claim this profile.)
I wasn't the one who performed the 1.5.5->1.5.6 upgrade. My colleague did it (I think I remember him mentioning he hit a bug then but worked around it).

So I'm guessing it was probably this same issue.
david
#3 david
Given that we've only had one report, and that 1.5.x isn't the latest stable release, I'm going to say that this probably isn't worth it. If more people run into this, we might reconsider.
  • -Confirmed
    +WontFix
chipx86
#4 chipx86
I know this is an issue in the packaged copies. Those are really the only things out there that are going to hit this (nobody manually installs 1.5.x with Python packages, and they'd get a newer Django anyway).

I'd recommend patching that file manually if you plan to do any revisions on it. Given the hard-coded Django requirement, you can have the code access settings.DATABASE instead of settings.DATABASES['default'].
#5 pf**@talk2***** (Google Code) (Is this you? Claim this profile.)
Since Django evolution isn't needed for fresh install, here's a workaround for use with "rb-site install".

CentOS 5 i386, ReviewBoard-1.5.7-1.el5 (From EPEL repo).

Edit: /usr/lib/python2.4/site-packages/reviewboard/changedescs/evolutions/__init__.py
Comment out last two lines (add # to start of line).

#if settings.DATABASES['default']['ENGINE'].endswith('mysql'):
#    SEQUENCE.append('fields_changed_longtext')