Issue Upgrading v4 to v7 (Issue seems to be v5 to v6 but not sure)

#1

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.