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

caravel db_upgrade fails on MySql #524

Closed
LAlbertalli opened this issue May 26, 2016 · 2 comments
Closed

caravel db_upgrade fails on MySql #524

LAlbertalli opened this issue May 26, 2016 · 2 comments

Comments

@LAlbertalli
Copy link
Contributor

The command caravel db_upgrade fails with the following error:

2016-05-26 21:49:47,019:INFO:flask_appbuilder.base:Registering class MyIndexView on menu 
2016-05-26 21:49:47,025:INFO:flask_appbuilder.base:Registering class UtilView on menu 
2016-05-26 21:49:47,030:INFO:flask_appbuilder.base:Registering class LocaleView on menu 
2016-05-26 21:49:47,035:INFO:flask_appbuilder.base:Registering class ResetPasswordView on menu 
2016-05-26 21:49:47,054:INFO:flask_appbuilder.base:Registering class ResetMyPasswordView on menu 
2016-05-26 21:49:47,071:INFO:flask_appbuilder.base:Registering class UserInfoEditView on menu 
2016-05-26 21:49:47,087:INFO:flask_appbuilder.base:Registering class AuthDBView on menu 
2016-05-26 21:49:47,099:INFO:flask_appbuilder.base:Registering class UserDBModelView on menu List Users
2016-05-26 21:49:47,150:INFO:flask_appbuilder.base:Registering class RoleModelView on menu List Roles
2016-05-26 21:49:47,200:INFO:flask_appbuilder.base:Registering class UserStatsChartView on menu User's Statistics
2016-05-26 21:49:47,233:INFO:flask_appbuilder.base:Registering class PermissionModelView on menu Base Permissions
2016-05-26 21:49:47,268:INFO:flask_appbuilder.base:Registering class ViewMenuModelView on menu Views/Menus
2016-05-26 21:49:47,306:INFO:flask_appbuilder.base:Registering class PermissionViewModelView on menu Permission on Views/Menus
2016-05-26 21:49:48,030:DEBUG:MARKDOWN:Successfuly imported extension module "markdown.extensions.tables".
2016-05-26 21:49:48,030:DEBUG:MARKDOWN:Successfully loaded extension "markdown.extensions.tables.TableExtension".
2016-05-26 21:49:48,033:DEBUG:MARKDOWN:Successfuly imported extension module "markdown.extensions.fenced_code".
2016-05-26 21:49:48,033:DEBUG:MARKDOWN:Successfully loaded extension "markdown.extensions.fenced_code.FencedCodeExtension".
2016-05-26 21:49:48,034:DEBUG:MARKDOWN:Successfuly imported extension module "markdown.extensions.codehilite".
2016-05-26 21:49:48,034:DEBUG:MARKDOWN:Successfully loaded extension "markdown.extensions.codehilite.CodeHiliteExtension".
2016-05-26 21:49:48,043:INFO:flask_appbuilder.base:Registering class TableColumnInlineView on menu 
2016-05-26 21:49:48,081:INFO:flask_appbuilder.base:Registering class DruidColumnInlineView on menu 
2016-05-26 21:49:48,133:DEBUG:MARKDOWN:Successfuly imported extension module "markdown.extensions.tables".
2016-05-26 21:49:48,133:DEBUG:MARKDOWN:Successfully loaded extension "markdown.extensions.tables.TableExtension".
2016-05-26 21:49:48,133:DEBUG:MARKDOWN:Successfuly imported extension module "markdown.extensions.fenced_code".
2016-05-26 21:49:48,134:DEBUG:MARKDOWN:Successfully loaded extension "markdown.extensions.fenced_code.FencedCodeExtension".
2016-05-26 21:49:48,134:DEBUG:MARKDOWN:Successfuly imported extension module "markdown.extensions.codehilite".
2016-05-26 21:49:48,134:DEBUG:MARKDOWN:Successfully loaded extension "markdown.extensions.codehilite.CodeHiliteExtension".
2016-05-26 21:49:48,138:INFO:flask_appbuilder.base:Registering class SqlMetricInlineView on menu 
2016-05-26 21:49:48,167:DEBUG:MARKDOWN:Successfuly imported extension module "markdown.extensions.tables".
2016-05-26 21:49:48,167:DEBUG:MARKDOWN:Successfully loaded extension "markdown.extensions.tables.TableExtension".
2016-05-26 21:49:48,167:DEBUG:MARKDOWN:Successfuly imported extension module "markdown.extensions.fenced_code".
2016-05-26 21:49:48,167:DEBUG:MARKDOWN:Successfully loaded extension "markdown.extensions.fenced_code.FencedCodeExtension".
2016-05-26 21:49:48,167:DEBUG:MARKDOWN:Successfuly imported extension module "markdown.extensions.codehilite".
2016-05-26 21:49:48,167:DEBUG:MARKDOWN:Successfully loaded extension "markdown.extensions.codehilite.CodeHiliteExtension".
2016-05-26 21:49:48,172:INFO:flask_appbuilder.base:Registering class DruidMetricInlineView on menu 
2016-05-26 21:49:48,205:DEBUG:MARKDOWN:Successfuly imported extension module "markdown.extensions.tables".
2016-05-26 21:49:48,205:DEBUG:MARKDOWN:Successfully loaded extension "markdown.extensions.tables.TableExtension".
2016-05-26 21:49:48,205:DEBUG:MARKDOWN:Successfuly imported extension module "markdown.extensions.fenced_code".
2016-05-26 21:49:48,206:DEBUG:MARKDOWN:Successfully loaded extension "markdown.extensions.fenced_code.FencedCodeExtension".
2016-05-26 21:49:48,206:DEBUG:MARKDOWN:Successfuly imported extension module "markdown.extensions.codehilite".
2016-05-26 21:49:48,206:DEBUG:MARKDOWN:Successfully loaded extension "markdown.extensions.codehilite.CodeHiliteExtension".
2016-05-26 21:49:48,208:WARNING:flask_appbuilder.models.filters:Filter type not supported for column: password
2016-05-26 21:49:48,211:INFO:flask_appbuilder.base:Registering class DatabaseView on menu Databases
2016-05-26 21:49:48,261:INFO:flask_appbuilder.base:Registering class TableModelView on menu Tables
2016-05-26 21:49:48,312:INFO:flask_appbuilder.base:Registering class DruidClusterModelView on menu Druid Clusters
2016-05-26 21:49:48,365:INFO:flask_appbuilder.base:Registering class SliceModelView on menu Slices
2016-05-26 21:49:48,406:INFO:flask_appbuilder.base:Registering class SliceAsync on menu 
2016-05-26 21:49:48,454:INFO:flask_appbuilder.base:Registering class DashboardModelView on menu Dashboards
2016-05-26 21:49:48,505:INFO:flask_appbuilder.base:Registering class DashboardModelViewAsync on menu 
2016-05-26 21:49:48,540:INFO:flask_appbuilder.base:Registering class LogModelView on menu Action Log
2016-05-26 21:49:48,592:INFO:flask_appbuilder.base:Registering class DruidDatasourceModelView on menu Druid Datasources
2016-05-26 21:49:48,639:INFO:flask_appbuilder.base:Registering class R on menu 
2016-05-26 21:49:48,646:INFO:flask_appbuilder.base:Registering class Caravel on menu 
2016-05-26 21:49:48,709:INFO:flask_appbuilder.base:Registering class CssTemplateModelView on menu CSS Templates
INFO  [alembic.runtime.migration] Context impl MySQLImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
INFO  [alembic.runtime.migration] Running upgrade  -> 4e6a06bad7a8, Init
Traceback (most recent call last):
  File "/usr/bin/caravel", line 113, in <module>
    manager.run()
  File "/usr/lib/python2.7/site-packages/flask_script/__init__.py", line 412, in run
    result = self.handle(sys.argv[0], sys.argv[1:])
  File "/usr/lib/python2.7/site-packages/flask_script/__init__.py", line 383, in handle
    res = handle(*args, **config)
  File "/usr/lib/python2.7/site-packages/flask_script/commands.py", line 216, in __call__
    return self.run(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/flask_migrate/__init__.py", line 235, in upgrade
    command.upgrade(config, revision, sql=sql, tag=tag)
  File "/usr/lib/python2.7/site-packages/alembic/command.py", line 174, in upgrade
    script.run_env()
  File "/usr/lib/python2.7/site-packages/alembic/script/base.py", line 397, in run_env
    util.load_python_file(self.dir, 'env.py')
  File "/usr/lib/python2.7/site-packages/alembic/util/pyfiles.py", line 93, in load_python_file
    module = load_module_py(module_id, path)
  File "/usr/lib/python2.7/site-packages/alembic/util/compat.py", line 79, in load_module_py
    mod = imp.load_source(module_id, path, fp)
  File "/usr/lib/python2.7/site-packages/caravel/migrations/env.py", line 90, in <module>
    run_migrations_online()
  File "/usr/lib/python2.7/site-packages/caravel/migrations/env.py", line 83, 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 797, in run_migrations
    self.get_context().run_migrations(**kw)
  File "/usr/lib/python2.7/site-packages/alembic/runtime/migration.py", line 312, in run_migrations
    step.migration_fn(**kw)
  File "/usr/lib/python2.7/site-packages/caravel/migrations/versions/4e6a06bad7a8_init.py", line 71, in upgrade
    sa.UniqueConstraint('datasource_name')
  File "<string>", line 8, in create_table
  File "<string>", line 3, in create_table
  File "/usr/lib/python2.7/site-packages/alembic/operations/ops.py", line 1098, in create_table
    return operations.invoke(op)
  File "/usr/lib/python2.7/site-packages/alembic/operations/base.py", line 318, in invoke
    return fn(self, operation)
  File "/usr/lib/python2.7/site-packages/alembic/operations/toimpl.py", line 101, in create_table
    operations.impl.create_table(table)
  File "/usr/lib/python2.7/site-packages/alembic/ddl/impl.py", line 194, in create_table
    self._exec(schema.CreateTable(table))
  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 914, in execute
    return meth(self, multiparams, params)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/sql/ddl.py", line 68, in _execute_on_connection
    return connection._execute_ddl(self, multiparams, params)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 968, in _execute_ddl
    compiled
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1146, in _execute_context
    context)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1341, in _handle_dbapi_exception
    exc_info
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/util/compat.py", line 202, 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 1139, in _execute_context
    context)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/default.py", line 450, in do_execute
    cursor.execute(statement, parameters)
  File "/usr/lib64/python2.7/site-packages/MySQLdb/cursors.py", line 174, in execute
    self.errorhandler(self, exc, value)
  File "/usr/lib64/python2.7/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
    raise errorclass, errorvalue
sqlalchemy.exc.OperationalError: (_mysql_exceptions.OperationalError) (1071, 'Specified key was too long; max key length is 767 bytes') [SQL: u'\nCREATE TABLE datasources (\n\tcreated_on DATETIME NOT NULL, \n\tchanged_on DATETIME NOT NULL, \n\tid INTEGER NOT NULL AUTO_INCREMENT, \n\tdatasource_name VARCHAR(256), \n\tis_featured BOOL, \n\tis_hidden BOOL, \n\tdescription TEXT, \n\tdefault_endpoint TEXT, \n\tuser_id INTEGER, \n\tcluster_name VARCHAR(250), \n\tcreated_by_fk INTEGER, \n\tchanged_by_fk INTEGER, \n\tPRIMARY KEY (id), \n\tUNIQUE (datasource_name), \n\tCHECK (is_featured IN (0, 1)), \n\tCHECK (is_hidden IN (0, 1)), \n\tFOREIGN KEY(user_id) REFERENCES ab_user (id), \n\tFOREIGN KEY(cluster_name) REFERENCES clusters (cluster_name), \n\tFOREIGN KEY(created_by_fk) REFERENCES ab_user (id), \n\tFOREIGN KEY(changed_by_fk) REFERENCES ab_user (id)\n)\n\n']

The app has been configured to use MySQL and the MySQL database is configured with

DEFAULT CHARACTER SET 'utf8'
DEFAULT COLLATE 'utf8_general_ci'

The operating system is CentOs 7.2 and the MySQL database is MySQL 5.5.44-37.3 (Percona Server Release 37.3).

My guess is that there are indexes on a varchar field that is too long (in utf8, each char is 4 bytes, so the limit is 191 char).

@x4base
Copy link
Contributor

x4base commented May 27, 2016

Which version of Caravel are you using? I suppose it should have been fixed in #459

@LAlbertalli
Copy link
Contributor Author

I'm using 0.9.0.
I see that your patch have not been included in 0.9. When I looked up the error I've seen it committed at the same time 0.9.0 was released so I assumed it was in 0.9

This means I'll need to checkout from master hoping that it works (Yesterday was broken :-( but I hadn't had time to investigate)

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

No branches or pull requests

2 participants