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.

Reply via email to