Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

superset upgrade from 19 to 27 fails in db upgrade step #5728

Closed
3 tasks done
ShalbafZadeh opened this issue Aug 25, 2018 · 0 comments · Fixed by #5729
Closed
3 tasks done

superset upgrade from 19 to 27 fails in db upgrade step #5728

ShalbafZadeh opened this issue Aug 25, 2018 · 0 comments · Fixed by #5729

Comments

@ShalbafZadeh
Copy link

Make sure these boxes are checked before submitting your issue - thank you!

  • I have checked the superset logs for python stacktraces and included it here as text if any
  • I have reproduced the issue with at least the latest released version of superset
  • I have checked the issue tracker for the same issue and I haven't found one similar

Superset version

0.27
upgrade from 19
postgresql 9.6

Expected results

as said in documentation for upgrading superset i expected to upgrade superset from 19 to 27 without issue

Actual results

superset db upgrade fails with

(superset) superset@caravel:~$ superset db upgrade 
Loaded your LOCAL configuration at [/home/superset/.env/superset/bin/superset_config.py]
INFO  [alembic.runtime.migration] Context impl PostgresqlImpl.
INFO  [alembic.runtime.migration] Will assume transactional DDL.
INFO  [alembic.runtime.migration] Running upgrade f959a6652acd -> 4736ec66ce19, empty message
Traceback (most recent call last):
  File "/home/superset/.env/superset/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context
    context)
  File "/home/superset/.env/superset/lib/python3.5/site-packages/sqlalchemy/engine/default.py", line 509, in do_execute
    cursor.execute(statement, parameters)
psycopg2.ProgrammingError: constraint "uq_datasources_datasource_name" of relation "datasources" does not exist


The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/superset/.env/superset/bin/superset", line 15, in <module>
    manager.run()
  File "/home/superset/.env/superset/lib/python3.5/site-packages/flask_script/__init__.py", line 417, in run
    result = self.handle(argv[0], argv[1:])
  File "/home/superset/.env/superset/lib/python3.5/site-packages/flask_script/__init__.py", line 386, in handle
    res = handle(*args, **config)
  File "/home/superset/.env/superset/lib/python3.5/site-packages/flask_script/commands.py", line 216, in __call__
    return self.run(*args, **kwargs)
  File "/home/superset/.env/superset/lib/python3.5/site-packages/flask_migrate/__init__.py", line 95, in wrapped
    f(*args, **kwargs)
  File "/home/superset/.env/superset/lib/python3.5/site-packages/flask_migrate/__init__.py", line 280, in upgrade
    command.upgrade(config, revision, sql=sql, tag=tag)
  File "/home/superset/.env/superset/lib/python3.5/site-packages/alembic/command.py", line 254, in upgrade
    script.run_env()
  File "/home/superset/.env/superset/lib/python3.5/site-packages/alembic/script/base.py", line 427, in run_env
    util.load_python_file(self.dir, 'env.py')
  File "/home/superset/.env/superset/lib/python3.5/site-packages/alembic/util/pyfiles.py", line 81, in load_python_file
    module = load_module_py(module_id, path)
  File "/home/superset/.env/superset/lib/python3.5/site-packages/alembic/util/compat.py", line 82, in load_module_py
    spec.loader.exec_module(module)
  File "<frozen importlib._bootstrap_external>", line 665, in exec_module
  File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
  File "/home/superset/.env/superset/lib/python3.5/site-packages/superset/migrations/env.py", line 103, in <module>
    run_migrations_online()
  File "/home/superset/.env/superset/lib/python3.5/site-packages/superset/migrations/env.py", line 96, in run_migrations_online
    context.run_migrations()
  File "<string>", line 8, in run_migrations
  File "/home/superset/.env/superset/lib/python3.5/site-packages/alembic/runtime/environment.py", line 836, in run_migrations
    self.get_context().run_migrations(**kw)
  File "/home/superset/.env/superset/lib/python3.5/site-packages/alembic/runtime/migration.py", line 330, in run_migrations
    step.migration_fn(**kw)
  File "/home/superset/.env/superset/lib/python3.5/site-packages/superset/migrations/versions/4736ec66ce19_.py", line 112, in upgrade
    type_='unique',
  File "/usr/lib/python3.5/contextlib.py", line 66, in __exit__
    next(self.gen)
  File "/home/superset/.env/superset/lib/python3.5/site-packages/alembic/operations/base.py", line 300, in batch_alter_table
    impl.flush()
  File "/home/superset/.env/superset/lib/python3.5/site-packages/alembic/operations/batch.py", line 53, in flush
    fn(*arg, **kw)
  File "/home/superset/.env/superset/lib/python3.5/site-packages/alembic/ddl/impl.py", line 180, in drop_constraint
    self._exec(schema.DropConstraint(const))
  File "/home/superset/.env/superset/lib/python3.5/site-packages/alembic/ddl/impl.py", line 115, in _exec
    return conn.execute(construct, *multiparams, **params)
  File "/home/superset/.env/superset/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 948, in execute
    return meth(self, multiparams, params)
  File "/home/superset/.env/superset/lib/python3.5/site-packages/sqlalchemy/sql/ddl.py", line 68, in _execute_on_connection
    return connection._execute_ddl(self, multiparams, params)
  File "/home/superset/.env/superset/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1009, in _execute_ddl
    compiled
  File "/home/superset/.env/superset/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context
    context)
  File "/home/superset/.env/superset/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception
    exc_info
  File "/home/superset/.env/superset/lib/python3.5/site-packages/sqlalchemy/util/compat.py", line 265, in raise_from_cause
    reraise(type(exception), exception, tb=exc_tb, cause=cause)
  File "/home/superset/.env/superset/lib/python3.5/site-packages/sqlalchemy/util/compat.py", line 248, in reraise
    raise value.with_traceback(tb)
  File "/home/superset/.env/superset/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context
    context)
  File "/home/superset/.env/superset/lib/python3.5/site-packages/sqlalchemy/engine/default.py", line 509, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) constraint "uq_datasources_datasource_name" of relation "datasources" does not exist
 [SQL: 'ALTER TABLE datasources DROP CONSTRAINT uq_datasources_datasource_name'] (Background on this error at: http://sqlalche.me/e/f405)

and superset init fails with

(superset) superset@caravel:~$ superset init 
Loaded your LOCAL configuration at [/home/superset/.env/superset/bin/superset_config.py]
2018-08-25 21:45:21,728:INFO:root:Creating database reference
Traceback (most recent call last):
  File "/home/superset/.env/superset/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context
    context)
  File "/home/superset/.env/superset/lib/python3.5/site-packages/sqlalchemy/engine/default.py", line 509, in do_execute
    cursor.execute(statement, parameters)
psycopg2.ProgrammingError: column dbs.allow_multi_schema_metadata_fetch does not exist
LINE 1: ..., dbs.force_ctas_schema AS dbs_force_ctas_schema, dbs.allow_...
                                                             ^


The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/superset/.env/superset/bin/superset", line 15, in <module>
    manager.run()
  File "/home/superset/.env/superset/lib/python3.5/site-packages/flask_script/__init__.py", line 417, in run
    result = self.handle(argv[0], argv[1:])
  File "/home/superset/.env/superset/lib/python3.5/site-packages/flask_script/__init__.py", line 386, in handle
    res = handle(*args, **config)
  File "/home/superset/.env/superset/lib/python3.5/site-packages/flask_script/commands.py", line 216, in __call__
    return self.run(*args, **kwargs)
  File "/home/superset/.env/superset/lib/python3.5/site-packages/superset/cli.py", line 33, in init
    utils.get_or_create_main_db()
  File "/home/superset/.env/superset/lib/python3.5/site-packages/superset/utils.py", line 805, in get_or_create_main_db
    .filter_by(database_name='main')
  File "/home/superset/.env/superset/lib/python3.5/site-packages/sqlalchemy/orm/query.py", line 2888, in first
    ret = list(self[0:1])
  File "/home/superset/.env/superset/lib/python3.5/site-packages/sqlalchemy/orm/query.py", line 2680, in __getitem__
    return list(res)
  File "/home/superset/.env/superset/lib/python3.5/site-packages/sqlalchemy/orm/query.py", line 2988, in __iter__
    return self._execute_and_instances(context)
  File "/home/superset/.env/superset/lib/python3.5/site-packages/sqlalchemy/orm/query.py", line 3011, in _execute_and_instances
    result = conn.execute(querycontext.statement, self._params)
  File "/home/superset/.env/superset/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 948, in execute
    return meth(self, multiparams, params)
  File "/home/superset/.env/superset/lib/python3.5/site-packages/sqlalchemy/sql/elements.py", line 269, in _execute_on_connection
    return connection._execute_clauseelement(self, multiparams, params)
  File "/home/superset/.env/superset/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1060, in _execute_clauseelement
    compiled_sql, distilled_params
  File "/home/superset/.env/superset/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context
    context)
  File "/home/superset/.env/superset/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception
    exc_info
  File "/home/superset/.env/superset/lib/python3.5/site-packages/sqlalchemy/util/compat.py", line 265, in raise_from_cause
    reraise(type(exception), exception, tb=exc_tb, cause=cause)
  File "/home/superset/.env/superset/lib/python3.5/site-packages/sqlalchemy/util/compat.py", line 248, in reraise
    raise value.with_traceback(tb)
  File "/home/superset/.env/superset/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context
    context)
  File "/home/superset/.env/superset/lib/python3.5/site-packages/sqlalchemy/engine/default.py", line 509, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) column dbs.allow_multi_schema_metadata_fetch does not exist
LINE 1: ..., dbs.force_ctas_schema AS dbs_force_ctas_schema, dbs.allow_...
                                                             ^
 [SQL: 'SELECT dbs.created_on AS dbs_created_on, dbs.changed_on AS dbs_changed_on, dbs.id AS dbs_id, dbs.verbose_name AS dbs_verbose_name, dbs.database_name AS dbs_database_name, dbs.sqlalchemy_uri AS dbs_sqlalchemy_uri, dbs.password AS dbs_password, dbs.cache_timeout AS dbs_cache_timeout, dbs.select_as_create_table_as AS dbs_select_as_create_table_as, dbs.expose_in_sqllab AS dbs_expose_in_sqllab, dbs.allow_run_sync AS dbs_allow_run_sync, dbs.allow_run_async AS dbs_allow_run_async, dbs.allow_ctas AS dbs_allow_ctas, dbs.allow_dml AS dbs_allow_dml, dbs.force_ctas_schema AS dbs_force_ctas_schema, dbs.allow_multi_schema_metadata_fetch AS dbs_allow_multi_schema_metadata_fetch, dbs.extra AS dbs_extra, dbs.perm AS dbs_perm, dbs.impersonate_user AS dbs_impersonate_user, dbs.changed_by_fk AS dbs_changed_by_fk, dbs.created_by_fk AS dbs_created_by_fk \nFROM dbs \nWHERE dbs.database_name = %(database_name_1)s \n LIMIT %(param_1)s'] [parameters: {'param_1': 1, 'database_name_1': 'main'}] (Background on this error at: http://sqlalche.me/e/f405)

i defined my postgres connection conifg in superset_config.py

Steps to reproduce

upgrade superset from 19 to 27

any help / advice is appreciated

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant