Kevin, The correct solution is to write your own evolution. See https://www.reviewboard.org/docs/manual/2.5/extending/extensions/models/#making-changes-to-custom-models for instructions on how to do this and where to put the file.
-David On Wed, May 3, 2017 at 4:08 PM Kevin Yu <[email protected]> wrote: > Hi All, > > Recently we updated our database schema to add another field to a table > that's used by our own reviewboard extension. When we run python setup.py > install to install the extension, we run into the following error: > > stdout: Project signature has changed - an evolution is required > > > stderr: WARNING:py.warnings:/usr/local/lib/python2.7/dist-packages/Django- > 1.6.11-py2.7.egg/django/db/backends/mysql/base.py:124: Warning: Specified > key was too long; max key length is 767 bytes > return self.cursor.execute(query, args) > > > ERROR:root:Error evolving extension models: Your models contain changes > that Django Evolution cannot resolve automatically.: The stored > evolutions do not completely resolve all model changes. > Run `./manage.py evolve --hint` to see a suggestion for the changes > required. > > > The following are the changes that could not be resolved: > In model fortinet.required_by_branch: > Field 'CLI_review_group' has been added > Traceback (most recent call last): > File > "/usr/local/lib/python2.7/dist-packages/Djblets-0.9.3-py2.7.egg/djblets/extensions/manager.py" > , line 1068, in _migrate_extension_models > stdout=stream, stderr=stream) > File > "/usr/local/lib/python2.7/dist-packages/Django-1.6.11-py2.7.egg/django/core/management/base.py" > , line 285, in execute > output = self.handle(*args, **options) > File > "/usr/local/lib/python2.7/dist-packages/django_evolution-0.7.6-py2.7.egg/django_evolution/management/commands/evolve.py" > , line 65, in handle > self.evolve(*app_labels, **options) > File > "/usr/local/lib/python2.7/dist-packages/django_evolution-0.7.6-py2.7.egg/django_evolution/management/commands/evolve.py" > , line 133, in evolve > self.check_simulation() > File > "/usr/local/lib/python2.7/dist-packages/django_evolution-0.7.6-py2.7.egg/django_evolution/management/commands/evolve.py" > , line 262, in check_simulation > raise CommandError('Your models contain changes that Django ' > CommandError: Your models contain changes that Django Evolution cannot > resolve automatically. > > > > Eventually, what we had to do is manually add the field to mysql, then run > the following commands and restart apache2. > rb-site manage /var/www/reviews.example.com shell > from django_evolution.models import Version > Version.objects.exclude(evolutions__pk__gt=0).delete() > > > I know this is probably a hack at the moment, but what would be the proper > time to handle database schema update for reviewboard extension? The > Reviewboard version i'm using is 2.5.6.1. > > -- > Supercharge your Review Board with Power Pack: > https://www.reviewboard.org/powerpack/ > Want us to host Review Board for you? Check out RBCommons: > https://rbcommons.com/ > Happy user? Let us know! https://www.reviewboard.org/users/ > --- > You received this message because you are subscribed to the Google Groups > "reviewboard" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- Supercharge your Review Board with Power Pack: https://www.reviewboard.org/powerpack/ Want us to host Review Board for you? Check out RBCommons: https://rbcommons.com/ Happy user? Let us know! https://www.reviewboard.org/users/ --- You received this message because you are subscribed to the Google Groups "reviewboard" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
