4029: Upgrade from 2.5rc1 to 2.5.1.1 failed - unable to complete evolutions

sgallagh
chipx86
chipx86

What version are you running?

2.5.1.1

What's the URL of the page containing the problem?

http://reviewboard-fedoraserver.rhcloud.com

What steps will reproduce the problem?

  1. Install Review Board 2.5 RC1 ( I had upgraded it over time from 2.0.x)
  2. Install the new 2.5.1.1 packages with easy_install
  3. Run rb-site upgrade /path/to/site

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

I expect a successful upgrade to complete. Instead, I get:

remote: CommandError: Your models contain changes that Django Evolution cannot resolve automatically.
remote: Rebuilding directory structure
remote: Updating database. This may take a while.
remote:
remote: The log output below, including warnings and errors,
remote: can be ignored unless upgrade fails.
remote:
remote: ------------------ <begin log output> ------------------
remote: Creating tables ...
remote: Upgrading Review Board from 2.5 RC1 to 2.5.1.1
remote: There are unapplied evolutions for webapi.
remote: Project signature has changed - an evolution is required
remote: Installing custom SQL ...
remote: Installing indexes ...
remote: Installed 0 object(s) from 0 fixture(s)
remote: The stored evolutions do not completely resolve all model changes.
remote: Run ./manage.py evolve --hint to see a suggestion for the changes required.
remote:
remote: The following are the changes that could not be resolved:
remote: In model reviews.ReviewRequest:
remote: Field 'file_attachment_histories' has been added
remote: In model reviews.Group:
remote: Field 'is_default_group' has been added
remote: Field 'email_list_only' has been added
remote: In model accounts.ReviewRequestVisit:
remote: Field 'visibility' has been added
remote: Meta property 'index_together' has changed
remote: In model attachments.FileAttachment:
remote: Field 'attachment_revision' has been added
remote: Field 'attachment_history' has been added
remote: The model diffviewer.FileDiffData has been deleted
remote: In model diffviewer.FileDiff:
remote: Field 'legacy_diff_hash' has been added
remote: Field 'legacy_parent_diff_hash' has been added
remote: In field 'diff_hash':
remote: Property 'db_column' has changed
remote: Property 'related_model' has changed
remote: In field 'parent_diff_hash':
remote: Property 'db_column' has changed
remote: Property 'related_model' has changed
remote: -------------------------

What operating system are you using? What browser?

This is installed on OpenShift 2.x, so essentially RHEL 6 with easy_install.

Please provide any additional information below.

rb-site manage -- evolve --hint gives me:

/var/lib/openshift/53bef9524382ecf76d000052/app-root/runtime/dependencies/python/virtenv/lib/python2.7/site-packages/pycrypto-2.6.1-py2.7-linux-x86_64.egg/Crypto/Util/number.py:57: PowmInsecureWarning: Not using mpz_powm_sec. You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.

----- Evolution for accounts

from django_evolution.mutations import AddField, ChangeMeta
from django.db import models

MUTATIONS = [
AddField('ReviewRequestVisit', 'visibility', models.CharField, initial=u'V', max_length=1),
ChangeMeta('ReviewRequestVisit', 'index_together', [(u'user', u'visibility')])
]

----------------------

----- Evolution for attachments

from django_evolution.mutations import AddField
from django.db import models

MUTATIONS = [
AddField('FileAttachment', 'attachment_revision', models.IntegerField, initial=0),
AddField('FileAttachment', 'attachment_history', models.ForeignKey, null=True, related_model='attachments.FileAttachmentHistory')
]

----------------------

CommandError: ChangeField does not support modifying the 'related_model' attribute on 'FileDiff.diff_hash'.

chipx86
#1 chipx86

We figured out the issue, and the core problem is being fixed in django-evolution (https://reviews.reviewboard.org/r/7777/).

  • -New
    +Fixed
  • +chipx86