Ver-by-Ver upgrading Redash from v0.11 to v8.0. In need of assistance

Hey guys,

On Redash support forum I asked how to migrate queries and datatables from v0.11 to v8. Basically the answer that I’ve got was “it’s impossible to migrate with that much of a leap. Too many things changed with versions. You have to upgrade your instance version-by-version to get to v8”

I downloaded a upgrade script: https://raw.githubusercontent.com/getredash/redash/master/bin/upgrade which only worked on --channel legacy to upgrade from 0.11 to 0.12. So when I try to run it from master branch it tries to upgrade to v8 directly(which would be great if it worked). But as told I need to go step-by-step.

So I am stuck with doing everything manually. So far I’ve upgraded to 1.0.3, seems like everything is right but server is giving me 500 error.

Please help me understand why.

Here is an output of api_error.log

[2020-11-15 23:25:23,376] ERROR in app: Exception on / [GET]
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1988, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1641, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/lib/python2.7/dist-packages/flask_restful/__init__.py", line 271, in error_router
    return original_handler(e)
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1544, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1639, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1625, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/usr/local/lib/python2.7/dist-packages/flask_login/utils.py", line 228, in decorated_view
    return func(*args, **kwargs)
  File "/opt/redash/redash-1.0.3/redash/handlers/static.py", line 30, in index
    return send_file(full_path, **dict(cache_timeout=0, conditional=True))
  File "/usr/local/lib/python2.7/dist-packages/flask/helpers.py", line 536, in send_file
    file = open(filename, 'rb')
IOError: [Errno 2] No such file or directory: '/opt/redash/redash-1.0.3/redash/../client/dist/index.html'
[2020-11-15 23:25:23,376][PID:1673][ERROR][redash] Exception on / [GET]
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1988, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1641, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/lib/python2.7/dist-packages/flask_restful/__init__.py", line 271, in error_router
    return original_handler(e)
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1544, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1639, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1625, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/usr/local/lib/python2.7/dist-packages/flask_login/utils.py", line 228, in decorated_view
    return func(*args, **kwargs)
  File "/opt/redash/redash-1.0.3/redash/handlers/static.py", line 30, in index
    return send_file(full_path, **dict(cache_timeout=0, conditional=True))
  File "/usr/local/lib/python2.7/dist-packages/flask/helpers.py", line 536, in send_file
    file = open(filename, 'rb')
IOError: [Errno 2] No such file or directory: '/opt/redash/redash-1.0.3/redash/../client/dist/index.html'
[2020-11-15 23:25:23,379][PID:1673][INFO][metrics] method=GET path=/ endpoint=redash.index status=500 content_type=? content_length=-1 duration=22.72 query_count=2 query_duration=3.19

on my machine that directory /opt/redash/redash-1.0.3/redash/../client/dist/ does not exist.

Best regards,
Vadim

What steps did you take? It seems like you didn’t check out the new code which is why that directory is empty.