First time here? Check out the FAQ!
0

How to upgrade askbot without crashing the existing instance?
 

I tried to upgrade to the version that fixes the Facebook error. From my askbot directory is did pip install -U askbot. There were a lot of warnings like "warning: no previously-included files mathing "*" found under directory docs/_build", etc.

When I try to go to our askbot, the error is:
TemplateAssertionError at /questions/

no filter named 'clean_login_url'

Request Method: GET Request URL: http://answers.ssdt-ohio.org/questions/ Django Version: 1.3.1 Exception Type: TemplateAssertionError Exception Value:

no filter named 'clean_login_url'

Exception Location: /usr/local/lib/python2.6/dist-packages/askbot/skins/default/templates/widgets/user_navigation.html in template, line 12 Python Executable: /usr/bin/python Python Version: 2.6.5 Python Path:

['/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk', '/usr/lib/python2.6/lib-old', '/usr/lib/python2.6/lib-dynload', '/usr/lib/python2.6/dist-packages', '/usr/local/lib/python2.6/dist-packages', '/', '/forum', '/usr/local/lib/python2.6/dist-packages/askbot/deps']

What else do I need to do to update Askbot? There are no concise directions anywhere that I could find.

To enter a block of code:

  • enter empty line after your previous text
  • paste or type the code
  • select the code and press the button above
Preview: (hide)
catdrich's avatar
81
catdrich
asked 13 years ago
Evgeny's avatar
13.2k
Evgeny
updated 13 years ago

Comments

I can't seem to edit this question without getting an "Internal Service" error. I wanted to add: I then did python manage.py migrate askbot and it said there was nothing to migrate.

catdrich's avatar catdrich (13 years ago)

Yes, I have damaged a template when hotfixing the xss issue discovered a few days ago.

Evgeny's avatar Evgeny (13 years ago)

Your site appears to be down btw. Also I recommend you to always use staging environment to test new software, don't just write over your existing setup. Sounds easy, but you are potentially might be getting into much harder to solve problems - e.g. repair a damaged database.

Evgeny's avatar Evgeny (13 years ago)

Edited the title to make it a little more informative.

Evgeny's avatar Evgeny (13 years ago)

It's not down, just not publicly available. And we don't really have a staging environment right now, as this is still being evaluated by our staff to see if it fits their needs.

catdrich's avatar catdrich (13 years ago)
see more comments

1 Answer

0

possible explanation What seems to me your system python paths might be inconsistent. Be careful with that. It is better to use virtual environment for the app, so it's completely isolated from the rest.

Look up "configuring mod_wsgi" with python virtual environment.

If you type some commands as root and then restart the webserver you can accidentally add your own environment variables to the root's and subsequently - the webserver.

how to upgrade:

  • set up a second fully functioning environment in a separate blank database (no tables), with new software (but do not run syncdb or migrate yet).
  • take your existing site down (possibly show some maintenance page)
  • dump your current database
  • load the database dump into the new (completely blank) database
  • migrate the new database with command python manage.py migrate

It might be tempting to just write over the old files with the new, but this might lead to harder problems to solve - trying to remember what edits you made in the files or fix the broken database.

With the "live" and "staging" deployments you can quickly revert if something goes wrong.

To enter a block of code:

  • enter empty line after your previous text
  • paste or type the code
  • select the code and press the button above
Preview: (hide)
Evgeny's avatar
13.2k
Evgeny
answered 13 years ago, updated 13 years ago
link

Comments

I'm not sure what you mean by using a virtual environment for the app. This server exists on it's own virtual server and there is nothing else on this server except for the applications required by this application (such as django, python, apache).

catdrich's avatar catdrich (13 years ago)

And, I already looked up configuring mod_wsgi with python when I first put up the site.

catdrich's avatar catdrich (13 years ago)

Ok, just giving the heads up, it is always very disappointing to put the live site down when upgrading. Re: virtual environment - there is a python tool called virtualenv that you can install with pip and use to create isolated python environments. It's super easy to use.

Evgeny's avatar Evgeny (13 years ago)

Is your suggestion to set it up on a separate server or just using a different database, different path, etc.? We use Ubuntu, btw. I just want to make sure of the steps so if we do go to more of a production setting, I can upgrade without issues.. Update -- I posted this before the information you gave me about virtualenv.

catdrich's avatar catdrich (13 years ago)

It can be set up on the same server, no need for a separate machine. Cheers!

Evgeny's avatar Evgeny (13 years ago)
see more comments