I’m running a health Redash 4.0.2+b4708 instance on CentOS 7 (No Docker). I didn’t do anything to it for quite a while as all was running fine but now saw that there’s an update available. So I ran the bin/upgrade script and restarted Redash. Got Redash 4.0.2+b4708 that way. After that, all worked fine, but the Users Page couldn’t be displayed anymore.
I checked manually using the ./manage.py users list command and got an error message that way:
> > > > > [root@82b767ec34d4 current]# sudo -u redash ./manage.py users list > > > Traceback (most recent call last): > > > File "./manage.py", line 9, in <module> > > > manager() > > > File "/usr/lib/python2.7/site-packages/click/core.py", line 716, in __call__ > > > return self.main(*args, **kwargs) > > > File "/usr/lib/python2.7/site-packages/flask/cli.py", line 345, in main > > > return AppGroup.main(self, *args, **kwargs) > > > File "/usr/lib/python2.7/site-packages/click/core.py", line 696, in main > > > rv = self.invoke(ctx) > > > File "/usr/lib/python2.7/site-packages/click/core.py", line 1060, in invoke > > > return _process_result(sub_ctx.command.invoke(sub_ctx)) > > > File "/usr/lib/python2.7/site-packages/click/core.py", line 1060, in invoke > > > return _process_result(sub_ctx.command.invoke(sub_ctx)) > > > File "/usr/lib/python2.7/site-packages/click/core.py", line 889, in invoke > > > return ctx.invoke(self.callback, **ctx.params) > > > File "/usr/lib/python2.7/site-packages/click/core.py", line 534, in invoke > > > return callback(*args, **kwargs) > > > File "/usr/lib/python2.7/site-packages/click/decorators.py", line 17, in new_func > > > return f(get_current_context(), *args, **kwargs) > > > File "/usr/lib/python2.7/site-packages/flask/cli.py", line 229, in decorator > > > return __ctx.invoke(f, *args, **kwargs) > > > File "/usr/lib/python2.7/site-packages/click/core.py", line 534, in invoke > > > return callback(*args, **kwargs) > > > File "/opt/redash/redash.7.0.0.b17535/redash/cli/users.py", line 244, in list > > > for i, user in enumerate(users.order_by(models.User.name)): > > > File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/query.py", line 2995, in __iter__ > > > return self._execute_and_instances(context) > > > File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/query.py", line 3018, in _execute_and_instances > > > result = conn.execute(querycontext.statement, self._params) > > > File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 948, in execute > > > return meth(self, multiparams, params) > > > File "/usr/lib64/python2.7/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection > > > return connection._execute_clauseelement(self, multiparams, params) > > > File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement > > > compiled_sql, distilled_params > > > File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context > > > context) > > > File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception > > > exc_info > > > File "/usr/lib64/python2.7/site-packages/sqlalchemy/util/compat.py", line 265, in raise_from_cause > > > reraise(type(exception), exception, tb=exc_tb, cause=cause) > > > File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context > > > context) > > > File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/default.py", line 509, in do_execute > > > cursor.execute(statement, parameters) > > > sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "users" does not exist > > > LINE 2: FROM users ORDER BY users.name > > > ^ > > > [SQL: 'SELECT users.profile_image_url AS users_profile_image_url, users.groups AS users_groups, users.updated_at AS users_updated_at, users.created_at AS users_created_at, users.id AS users_id, users.org_id AS users_org_id, users.name AS users_name, users.email AS users_email, users.password_hash AS users_password_hash, users.api_key AS users_api_key, users.disabled_at AS users_disabled_at, users.details AS users_details \nFROM users ORDER BY users.name'] (Background on this error at: http://sqlalche.me/e/f405)
Tried a ./manage.py db upgrade which also failed.
> `[root@82b767ec34d4 current]# sudo -u redash ./manage.py db upgrade
> [2019-05-15 11:17:26,733][PID:7604][INFO][alembic.runtime.migration] Context impl PostgresqlImpl.
> [2019-05-15 11:17:26,734][PID:7604][INFO][alembic.runtime.migration] Will assume transactional DDL.
> [2019-05-15 11:17:26,784][PID:7604][INFO][alembic.runtime.migration] Running upgrade -> 65fc9ede4746, Add is_draft status to queries and dashboards
> Traceback (most recent call last):
> File "./manage.py", line 9, in <module>
> manager()
> File "/usr/lib/python2.7/site-packages/click/core.py", line 716, in __call__
> return self.main(*args, **kwargs)
> File "/usr/lib/python2.7/site-packages/flask/cli.py", line 345, in main
> return AppGroup.main(self, *args, **kwargs)
> File "/usr/lib/python2.7/site-packages/click/core.py", line 696, in main
> rv = self.invoke(ctx)
> File "/usr/lib/python2.7/site-packages/click/core.py", line 1060, in invoke
> return _process_result(sub_ctx.command.invoke(sub_ctx))
> File "/usr/lib/python2.7/site-packages/click/core.py", line 1060, in invoke
> return _process_result(sub_ctx.command.invoke(sub_ctx))
> File "/usr/lib/python2.7/site-packages/click/core.py", line 889, in invoke
> return ctx.invoke(self.callback, **ctx.params)
> File "/usr/lib/python2.7/site-packages/click/core.py", line 534, in invoke
> return callback(*args, **kwargs)
> File "/usr/lib/python2.7/site-packages/click/decorators.py", line 17, in new_func
> return f(get_current_context(), *args, **kwargs)
> File "/usr/lib/python2.7/site-packages/flask/cli.py", line 229, in decorator
> return __ctx.invoke(f, *args, **kwargs)
> File "/usr/lib/python2.7/site-packages/click/core.py", line 534, in invoke
> return callback(*args, **kwargs)
> File "/usr/lib/python2.7/site-packages/flask_migrate/cli.py", line 132, in upgrade
> _upgrade(directory, revision, sql, tag, x_arg)
> File "/usr/lib/python2.7/site-packages/flask_migrate/__init__.py", line 239, in upgrade
> command.upgrade(config, revision, sql=sql, tag=tag)
> File "/usr/lib/python2.7/site-packages/alembic/command.py", line 254, in upgrade
> script.run_env()
> File "/usr/lib/python2.7/site-packages/alembic/script/base.py", line 427, in run_env
> util.load_python_file(self.dir, 'env.py')
> File "/usr/lib/python2.7/site-packages/alembic/util/pyfiles.py", line 81, in load_python_file
> module = load_module_py(module_id, path)
> File "/usr/lib/python2.7/site-packages/alembic/util/compat.py", line 141, in load_module_py
> mod = imp.load_source(module_id, path, fp)
> File "migrations/env.py", line 87, in <module>
> run_migrations_online()
> File "migrations/env.py", line 80, in run_migrations_online
> context.run_migrations()
> File "<string>", line 8, in run_migrations
> File "/usr/lib/python2.7/site-packages/alembic/runtime/environment.py", line 836, in run_migrations
> self.get_context().run_migrations(**kw)
> File "/usr/lib/python2.7/site-packages/alembic/runtime/migration.py", line 337, in run_migrations
> head_maintainer.update_to_step(step)
> File "/usr/lib/python2.7/site-packages/alembic/runtime/migration.py", line 517, in update_to_step
> self._insert_version(vers)
> File "/usr/lib/python2.7/site-packages/alembic/runtime/migration.py", line 472, in _insert_version
> version_num=literal_column("'%s'" % version)
> File "/usr/lib/python2.7/site-packages/alembic/ddl/impl.py", line 118, in _exec
> return conn.execute(construct, *multiparams, **params)
> File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 948, in execute
> return meth(self, multiparams, params)
> File "/usr/lib64/python2.7/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection
> return connection._execute_clauseelement(self, multiparams, params)
> File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement
> compiled_sql, distilled_params
> File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context
> context)
> File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception
> exc_info
> File "/usr/lib64/python2.7/site-packages/sqlalchemy/util/compat.py", line 265, in raise_from_cause
> reraise(type(exception), exception, tb=exc_tb, cause=cause)
> File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context
> context)
> File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/default.py", line 509, in do_execute
> cursor.execute(statement, parameters)
> sqlalchemy.exc.InternalError: (psycopg2.InternalError) current transaction is aborted, commands ignored until end of transaction block
> [SQL: "INSERT INTO alembic_version (version_num) VALUES ('65fc9ede4746') RETURNING alembic_version.version_num"] (Background on this error at: http://sqlalche.me/e/2j85)
> `
Later I found this issue:
So I tried the suggested command but also got an error:
[root@82b767ec34d4 current]# sudo -u redash psql -c “alter table dashboards add column tags varchar;” redash
psql: warning: extra command-line argument “add” ignored
psql: warning: extra command-line argument “column” ignored
psql: warning: extra command-line argument “tags” ignored
psql: warning: extra command-line argument “varchar” ignored
psql: FATAL: Peer authentication failed for user “dashboards”
bash: ”: command not found
I tried a few more attempts, also with commenting the lines as suggested in the other post and doing db upgrade / db migrate but still the issue persisted. So I thought ok, let’s take it down to which version causes the issue. So I updated step by step by modifying the array in the upgrade script. Upgrades to 5.0.0, 5.0.1 and 5.0.2 went smoothly and in a quick check I couldn’t find any issue with the Redash instance, all worked fine. Then I upgraded from 5.0.2 to 6.0.0 and I can’t see the user list as well as Dashboards and Queries are all not shown anymore. Again I get errors when running manual scripts:
> [root@66efc5d51a04 current]# sudo -u redash ./manage.py users list
> [2019-05-15 12:29:20,951][PID:10179][INFO][root] Latest version: 7.0.0 (newer: True)
> Traceback (most recent call last):
> File "./manage.py", line 9, in <module>
> manager()
> File "/usr/lib/python2.7/site-packages/click/core.py", line 716, in __call__
> return self.main(*args, **kwargs)
> File "/usr/lib/python2.7/site-packages/flask/cli.py", line 345, in main
> return AppGroup.main(self, *args, **kwargs)
> File "/usr/lib/python2.7/site-packages/click/core.py", line 696, in main
> rv = self.invoke(ctx)
> File "/usr/lib/python2.7/site-packages/click/core.py", line 1060, in invoke
> return _process_result(sub_ctx.command.invoke(sub_ctx))
> File "/usr/lib/python2.7/site-packages/click/core.py", line 1060, in invoke
> return _process_result(sub_ctx.command.invoke(sub_ctx))
> File "/usr/lib/python2.7/site-packages/click/core.py", line 889, in invoke
> return ctx.invoke(self.callback, **ctx.params)
> File "/usr/lib/python2.7/site-packages/click/core.py", line 534, in invoke
> return callback(*args, **kwargs)
> File "/usr/lib/python2.7/site-packages/click/decorators.py", line 17, in new_func
> return f(get_current_context(), *args, **kwargs)
> File "/usr/lib/python2.7/site-packages/flask/cli.py", line 229, in decorator
> return __ctx.invoke(f, *args, **kwargs)
> File "/usr/lib/python2.7/site-packages/click/core.py", line 534, in invoke
> return callback(*args, **kwargs)
> File "/opt/redash/redash.6.0.0.b8536/redash/cli/users.py", line 244, in list
> for i, user in enumerate(users.order_by(models.User.name)):
> File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/query.py", line 2925, in __iter__
> return self._execute_and_instances(context)
> File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/query.py", line 2948, in _execute_and_instances
> result = conn.execute(querycontext.statement, self._params)
> File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 948, in execute
> return meth(self, multiparams, params)
> File "/usr/lib64/python2.7/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection
> return connection._execute_clauseelement(self, multiparams, params)
> File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement
> compiled_sql, distilled_params
> File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context
> context)
> File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception
> exc_info
> File "/usr/lib64/python2.7/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause
> reraise(type(exception), exception, tb=exc_tb, cause=cause)
> File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context
> context)
> File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute
> cursor.execute(statement, parameters)
> sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "users" does not exist
> LINE 2: FROM users ORDER BY users.name
> ^
> [SQL: 'SELECT users.profile_image_url AS users_profile_image_url, users.groups AS users_groups, users.updated_at AS users_updated_at, users.created_at AS users_created_at, users.id AS users_id, users.org_id AS users_org_id, users.name AS users_name, users.email AS users_email, users.password_hash AS users_password_hash, users.api_key AS users_api_key, users.disabled_at AS users_disabled_at \nFROM users ORDER BY users.name'] (Background on this error at: http://sqlalche.me/e/f405)
>
> [root@66efc5d51a04 current]# sudo -u redash ./manage.py db migrate
> [2019-05-15 12:29:47,466][PID:10317][INFO][root] Latest version: 7.0.0 (newer: True)
> [2019-05-15 12:29:48,608][PID:10317][INFO][alembic.runtime.migration] Context impl PostgresqlImpl.
> [2019-05-15 12:29:48,609][PID:10317][INFO][alembic.runtime.migration] Will assume transactional DDL.
> Traceback (most recent call last):
> File "./manage.py", line 9, in <module>
> manager()
> File "/usr/lib/python2.7/site-packages/click/core.py", line 716, in __call__
> return self.main(*args, **kwargs)
> File "/usr/lib/python2.7/site-packages/flask/cli.py", line 345, in main
> return AppGroup.main(self, *args, **kwargs)
> File "/usr/lib/python2.7/site-packages/click/core.py", line 696, in main
> rv = self.invoke(ctx)
> File "/usr/lib/python2.7/site-packages/click/core.py", line 1060, in invoke
> return _process_result(sub_ctx.command.invoke(sub_ctx))
> File "/usr/lib/python2.7/site-packages/click/core.py", line 1060, in invoke
> return _process_result(sub_ctx.command.invoke(sub_ctx))
> File "/usr/lib/python2.7/site-packages/click/core.py", line 889, in invoke
> return ctx.invoke(self.callback, **ctx.params)
> File "/usr/lib/python2.7/site-packages/click/core.py", line 534, in invoke
> return callback(*args, **kwargs)
> File "/usr/lib/python2.7/site-packages/click/decorators.py", line 17, in new_func
> return f(get_current_context(), *args, **kwargs)
> File "/usr/lib/python2.7/site-packages/flask/cli.py", line 229, in decorator
> return __ctx.invoke(f, *args, **kwargs)
> File "/usr/lib/python2.7/site-packages/click/core.py", line 534, in invoke
> return callback(*args, **kwargs)
> File "/usr/lib/python2.7/site-packages/flask_migrate/cli.py", line 88, in migrate
> rev_id)
> File "/usr/lib/python2.7/site-packages/flask_migrate/__init__.py", line 177, in migrate
> version_path=version_path, rev_id=rev_id)
> File "/usr/lib/python2.7/site-packages/alembic/command.py", line 176, in revision
> script_directory.run_env()
> File "/usr/lib/python2.7/site-packages/alembic/script/base.py", line 427, in run_env
> util.load_python_file(self.dir, 'env.py')
> File "/usr/lib/python2.7/site-packages/alembic/util/pyfiles.py", line 81, in load_python_file
> module = load_module_py(module_id, path)
> File "/usr/lib/python2.7/site-packages/alembic/util/compat.py", line 141, in load_module_py
> mod = imp.load_source(module_id, path, fp)
> File "migrations/env.py", line 87, in <module>
> run_migrations_online()
> File "migrations/env.py", line 80, in run_migrations_online
> context.run_migrations()
> File "<string>", line 8, in run_migrations
> File "/usr/lib/python2.7/site-packages/alembic/runtime/environment.py", line 836, in run_migrations
> self.get_context().run_migrations(**kw)
> File "/usr/lib/python2.7/site-packages/alembic/runtime/migration.py", line 321, in run_migrations
> for step in self._migrations_fn(heads, self):
> File "/usr/lib/python2.7/site-packages/alembic/command.py", line 156, in retrieve_migrations
> revision_context.run_autogenerate(rev, context)
> File "/usr/lib/python2.7/site-packages/alembic/autogenerate/api.py", line 415, in run_autogenerate
> self._run_environment(rev, migration_context, True)
> File "/usr/lib/python2.7/site-packages/alembic/autogenerate/api.py", line 427, in _run_environment
> raise util.CommandError("Target database is not up to date.")
> alembic.util.exc.CommandError: Target database is not up to date.
[root@66efc5d51a04 current]# sudo -u redash ./manage.py db upgrade [2019-05-15 12:29:57,094][PID:10377][INFO][root] Latest version: 7.0.0 (newer: True) [2019-05-15 12:29:58,143][PID:10377][INFO][alembic.runtime.migration] Context impl PostgresqlImpl. [2019-05-15 12:29:58,144][PID:10377][INFO][alembic.runtime.migration] Will assume transactional DDL. [2019-05-15 12:29:58,159][PID:10377][INFO][alembic.runtime.migration] Running upgrade -> 65fc9ede4746, Add is_draft status to queries and dashboards Traceback (most recent call last): File "./manage.py", line 9, in <module> manager() File "/usr/lib/python2.7/site-packages/click/core.py", line 716, in __call__ return self.main(*args, **kwargs) File "/usr/lib/python2.7/site-packages/flask/cli.py", line 345, in main return AppGroup.main(self, *args, **kwargs) File "/usr/lib/python2.7/site-packages/click/core.py", line 696, in main rv = self.invoke(ctx) File "/usr/lib/python2.7/site-packages/click/core.py", line 1060, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "/usr/lib/python2.7/site-packages/click/core.py", line 1060, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "/usr/lib/python2.7/site-packages/click/core.py", line 889, in invoke return ctx.invoke(self.callback, **ctx.params) File "/usr/lib/python2.7/site-packages/click/core.py", line 534, in invoke return callback(*args, **kwargs) File "/usr/lib/python2.7/site-packages/click/decorators.py", line 17, in new_func return f(get_current_context(), *args, **kwargs) File "/usr/lib/python2.7/site-packages/flask/cli.py", line 229, in decorator return __ctx.invoke(f, *args, **kwargs) File "/usr/lib/python2.7/site-packages/click/core.py", line 534, in invoke return callback(*args, **kwargs) File "/usr/lib/python2.7/site-packages/flask_migrate/cli.py", line 132, in upgrade _upgrade(directory, revision, sql, tag, x_arg) File "/usr/lib/python2.7/site-packages/flask_migrate/__init__.py", line 239, in upgrade command.upgrade(config, revision, sql=sql, tag=tag) File "/usr/lib/python2.7/site-packages/alembic/command.py", line 254, in upgrade script.run_env() File "/usr/lib/python2.7/site-packages/alembic/script/base.py", line 427, in run_env util.load_python_file(self.dir, 'env.py') File "/usr/lib/python2.7/site-packages/alembic/util/pyfiles.py", line 81, in load_python_file module = load_module_py(module_id, path) File "/usr/lib/python2.7/site-packages/alembic/util/compat.py", line 141, in load_module_py mod = imp.load_source(module_id, path, fp) File "migrations/env.py", line 87, in <module> run_migrations_online() File "migrations/env.py", line 80, in run_migrations_online context.run_migrations() File "<string>", line 8, in run_migrations File "/usr/lib/python2.7/site-packages/alembic/runtime/environment.py", line 836, in run_migrations self.get_context().run_migrations(**kw) File "/usr/lib/python2.7/site-packages/alembic/runtime/migration.py", line 337, in run_migrations head_maintainer.update_to_step(step) File "/usr/lib/python2.7/site-packages/alembic/runtime/migration.py", line 517, in update_to_step self._insert_version(vers) File "/usr/lib/python2.7/site-packages/alembic/runtime/migration.py", line 472, in _insert_version version_num=literal_column("'%s'" % version) File "/usr/lib/python2.7/site-packages/alembic/ddl/impl.py", line 118, in _exec return conn.execute(construct, *multiparams, **params) File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 948, in execute return meth(self, multiparams, params) File "/usr/lib64/python2.7/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection return connection._execute_clauseelement(self, multiparams, params) File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement compiled_sql, distilled_params File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context context) File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception exc_info File "/usr/lib64/python2.7/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause reraise(type(exception), exception, tb=exc_tb, cause=cause) File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context context) File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/default.py", line 507, in do_execute cursor.execute(statement, parameters) sqlalchemy.exc.InternalError: (psycopg2.InternalError) current transaction is aborted, commands ignored until end of transaction block [SQL: "INSERT INTO alembic_version (version_num) VALUES ('65fc9ede4746') RETURNING alembic_version.version_num"] (Background on this error at: http://sqlalche.me/e/2j85)
I’m a bit lost now and don’t know what to do to successfully upgrade to v7, would be great if anyone could assist me. Thanks a lot in advance.