Upgrade 2.0.5 to 2.0.6 fails database evolution

143 views
Skip to first unread message

Jason Matheson

unread,
Sep 9, 2014, 2:12:50 PM9/9/14
to revie...@googlegroups.com
I am setting up a new ReviewBoard site and was just about to go live when I noticed the new 2.0.6 update. Decided to upgrade as it was low risk. I first installed the site using 1.7.25. Then upgraded it to 2.0.5 with out a problem. Tested the site with a few fake reviews. Everything appeared to be working.

The enclosed log shows the failure. manage.py did not give anything useful as it also hits an error. I don't know python but this error leads me to believe this is a problem with my python installation.

I am tempted to scrape the MySQL database and start fresh but I would like to understand what went wrong for future reference.

Thanks for the help!
upgrade_failure.log

Christian Hammond

unread,
Sep 9, 2014, 2:30:47 PM9/9/14
to revie...@googlegroups.com, Jason Matheson
Hi Jason,

That’s pretty concerning, because there were no database schema changes at all made in 2.0.6. Are you sure the 2.0.5 upgrade actually went well? All these fields were introduced in 2.0.

Christian

--
Christian Hammond - chri...@beanbaginc.com
Review Board - https://www.reviewboard.org
Beanbag, Inc. - https://www.beanbaginc.com
> --
> Get the Review Board Power Pack at http://www.reviewboard.org/powerpack/
> ---
> Sign up for Review Board hosting at RBCommons: https://rbcommons.com/
> ---
> Happy user? Let us know at http://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 reviewboard...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

Jason Matheson

unread,
Sep 9, 2014, 2:54:20 PM9/9/14
to revie...@googlegroups.com, nosp...@gmail.com, chri...@beanbaginc.com
Here are the logs from the 1.7.25 to 2.0.5 upgrade. All I saw was warnings and the evolution had no errors or warnings

Jason.
Upgrade_1.7.25_to_2.0.5.log

Jason Matheson

unread,
Sep 9, 2014, 2:57:39 PM9/9/14
to revie...@googlegroups.com, nosp...@gmail.com, chri...@beanbaginc.com
Also be aware, that during the 1.7.25 to 2.0.5 upgrade there was very little in the database because there were no reviews created at that time.

Jason

Jason Matheson

unread,
Sep 10, 2014, 11:26:56 AM9/10/14
to revie...@googlegroups.com, nosp...@gmail.com, chri...@beanbaginc.com
Will now that it appears my database is corrupt, how do I start fresh. Is it good enough just to delete the database in mysql or do I need to do more?

Thanks
Jason

Christian Hammond

unread,
Sep 10, 2014, 1:37:24 PM9/10/14
to revie...@googlegroups.com, Jason Matheson, nosp...@gmail.com
If you want to salvage the database, it's entirely possible to do so. I can help on here by having you e-mail information that I need, but depending, it could take time, and would need to be done over this list.

If you were interested in a support contract or one-time support incident, it would speed up the process (we offer live chat, priority responses to urgent requests, and secure transmission/storage of sensitive data). I'd probably be able to get your old database ported over to 2.0.6 within a few hours.

If you want to start fresh, you can drop the database, create a new one (granting permissions to your configured user), and then run 'rb-site upgrade' to have it repopulate the database.

Christian

--
Christian Hammond - chri...@beanbaginc.com
Review Board - https://www.reviewboard.org
Beanbag, Inc. - https://www.beanbaginc.com


Jason Matheson

unread,
Sep 10, 2014, 2:53:38 PM9/10/14
to revie...@googlegroups.com, nosp...@gmail.com, chri...@beanbaginc.com
I think I am going down a rabbit hole now. I was hoping this was going to be faster and cleaner. I recreated the database as follows:

mysql> drop database reviewboard;
mysql> create database reviewboard;
# reviewboard user already created so skip!
#mysql> create user 'reviewboard'@'localhost' identified by 'reviewboard';
mysql> grant all on reviewboard.* to 'reviewboard'@'localhost';

Then ran rb-site and got the following error:

# rb-site upgrade /var/www/reviewboard/
Traceback (most recent call last):
  File "/usr/bin/rb-site", line 9, in <module>
    load_entry_point('ReviewBoard==2.0.6', 'console_scripts', 'rb-site')()
  File "/usr/lib/python2.6/site-packages/ReviewBoard-2.0.6-py2.6.egg/reviewboard/cmdline/rbsite.py", line 1858, in main
    command.run()
  File "/usr/lib/python2.6/site-packages/ReviewBoard-2.0.6-py2.6.egg/reviewboard/cmdline/rbsite.py", line 1657, in run
    static_media_upgrade_needed = site.get_static_media_upgrade_needed()
  File "/usr/lib/python2.6/site-packages/ReviewBoard-2.0.6-py2.6.egg/reviewboard/cmdline/rbsite.py", line 436, in get_static_media_upgrade_needed
    siteconfig = SiteConfiguration.objects.get_current()
  File "/usr/lib/python2.6/site-packages/Djblets-0.8.9-py2.6.egg/djblets/siteconfig/managers.py", line 50, in get_current
    site = Site.objects.get_current()
  File "/usr/lib/python2.6/site-packages/Django-1.6.7-py2.6.egg/django/contrib/sites/models.py", line 47, in get_current
    current_site = self.get(pk=sid)
  File "/usr/lib/python2.6/site-packages/Django-1.6.7-py2.6.egg/django/db/models/manager.py", line 151, in get
    return self.get_queryset().get(*args, **kwargs)
  File "/usr/lib/python2.6/site-packages/Django-1.6.7-py2.6.egg/django/db/models/query.py", line 304, in get
    num = len(clone)
  File "/usr/lib/python2.6/site-packages/Django-1.6.7-py2.6.egg/django/db/models/query.py", line 77, in __len__
    self._fetch_all()
  File "/usr/lib/python2.6/site-packages/Django-1.6.7-py2.6.egg/django/db/models/query.py", line 857, in _fetch_all
    self._result_cache = list(self.iterator())
  File "/usr/lib/python2.6/site-packages/Django-1.6.7-py2.6.egg/django/db/models/query.py", line 220, in iterator
    for row in compiler.results_iter():
  File "/usr/lib/python2.6/site-packages/Django-1.6.7-py2.6.egg/django/db/models/sql/compiler.py", line 713, in results_iter
    for rows in self.execute_sql(MULTI):
  File "/usr/lib/python2.6/site-packages/Django-1.6.7-py2.6.egg/django/db/models/sql/compiler.py", line 786, in execute_sql
    cursor.execute(sql, params)
  File "/usr/lib/python2.6/site-packages/Django-1.6.7-py2.6.egg/django/db/backends/util.py", line 53, in execute
    return self.cursor.execute(sql, params)
  File "/usr/lib/python2.6/site-packages/Django-1.6.7-py2.6.egg/django/db/utils.py", line 99, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "/usr/lib/python2.6/site-packages/Django-1.6.7-py2.6.egg/django/db/backends/util.py", line 53, in execute
    return self.cursor.execute(sql, params)
  File "/usr/lib/python2.6/site-packages/Django-1.6.7-py2.6.egg/django/db/backends/mysql/base.py", line 124, in execute
    return self.cursor.execute(query, args)
  File "/usr/lib64/python2.6/site-packages/MySQLdb/cursors.py", line 173, in execute
    self.errorhandler(self, exc, value)
  File "/usr/lib64/python2.6/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
    raise errorclass, errorvalue
django.db.utils.ProgrammingError: (1146, "Table 'reviewboard.django_site' doesn't exist")
[root@dsllinux4 reviewboard]#

The database appears to be not filled in correctly. Should I be running 'rb-site install' instead?

Jason

Christian Hammond

unread,
Sep 10, 2014, 2:55:27 PM9/10/14
to revie...@googlegroups.com, Jason Matheson, nosp...@gmail.com
Ah right, sorry, upgrade does require some state these days.

Try instead doing:

    rb-site manage /path/to/site syncdb

Hopefully that works better. Then you can do an upgrade from there.

Christian

--
Christian Hammond - chri...@beanbaginc.com
Review Board - https://www.reviewboard.org
Beanbag, Inc. - https://www.beanbaginc.com


On September 10, 2014 at 11:53:40 AM, Jason Matheson (nosp...@gmail.com) wrote:
> I think I am going down a rabbit hole now. I was hoping this was going to
> be faster and cleaner. I recreated the database as follows:
>
> mysql> drop database reviewboard;
> mysql> create database reviewboard;
> # reviewboard user already created so skip!
> #mysql> create user 'reviewboard'@'localhost' identified by 'reviewboard';
> mysql> grant all on reviewboard.* to 'reviewboard'@'localhost';
>
> Then ran rb-site and got the following error:
>
> # rb-site upgrade /var/www/reviewboard/
> Traceback (most recent call last):
> File "/usr/bin/rb-site", line 9, in

Jason Matheson

unread,
Sep 10, 2014, 3:28:33 PM9/10/14
to revie...@googlegroups.com, nosp...@gmail.com, chri...@beanbaginc.com
Ok, that worked. Now what is the admin password? During the install I remember it asking for this information. but now that all the users are gone, the admin password is gone as well. But I have to enter something in the password field. So, now what?

How do I create a admin password?

Thanks
Jason

Christian Hammond

unread,
Sep 10, 2014, 3:31:34 PM9/10/14
to revie...@googlegroups.com, Jason Matheson, nosp...@gmail.com
Hi Jason,

It's asking you to create a new one. You can provide whatever you like for the admin username and password.

Christian

--
Christian Hammond - chri...@beanbaginc.com
Review Board - https://www.reviewboard.org
Beanbag, Inc. - https://www.beanbaginc.com


Jason Matheson

unread,
Sep 10, 2014, 3:53:41 PM9/10/14
to revie...@googlegroups.com, nosp...@gmail.com, chri...@beanbaginc.com
When you say, "it's", are you talking about the "rb-site manage" script I ran or the /var/www/reviewboard site?

When I ran "rb-site manage" it did propose this question to me which I didn't link to the admin user of the site.
-----------------------------------------------------------------------------
You just installed Django's auth system, which means you don't have any superusers defined.
Would you like to create one now? (yes/no): no
-----------------------------------------------------------------------------

As you can see I answered 'no'. Now I am putting 2 and 2 together and guessing that Django is the sub system you are using to handle authentication for ReviewBoard, correct?

/var/www/reviewboard site does not offer me any way of setting the admin password. It only allows me to try to log in.

Re-running "rb-site manage /var/www/reviewboard/ syncdb" does not ask me the question above again.

Down the rabbit hole we go! (:{>)
Jason

Christian Hammond

unread,
Sep 10, 2014, 4:03:05 PM9/10/14
to revie...@googlegroups.com, Jason Matheson, nosp...@gmail.com
Django's the underlying framework used for the whole web application layer. This includes things like interfacing with the database, handling authentication, and more.

Since you answered 'no', you'll want to create a new superuser. You can do this with:

    rb-site manage /path/to/site createsuperuser

Then just fill in a desired username and password, and you should be good!

Christian

--
Christian Hammond - chri...@beanbaginc.com
Review Board - https://www.reviewboard.org
Beanbag, Inc. - https://www.beanbaginc.com


Jason Matheson

unread,
Sep 10, 2014, 4:10:30 PM9/10/14
to revie...@googlegroups.com, nosp...@gmail.com, chri...@beanbaginc.com
Thanks for the help. That worked.

BTW, "rb-site -help" displays no help information for "manage". I guess this is on purpose because it is a back door.

No offense, but I hope I don't need your help any more. (:{>)
Jason

Christian Hammond

unread,
Sep 10, 2014, 4:11:38 PM9/10/14
to revie...@googlegroups.com, Jason Matheson, nosp...@gmail.com
No offense taken! I hope everything works from here on out.

The 'manage' command should probably be there. I'll look into it, since there's a few useful things in there. Thanks!

Christian

--
Christian Hammond - chri...@beanbaginc.com
Review Board - https://www.reviewboard.org
Beanbag, Inc. - https://www.beanbaginc.com


Reply all
Reply to author
Forward
0 new messages