Netflix / lemur-docker

Docker files for the Lemur certificate orchestration tool
170 stars 88 forks source link

Database error - Doesn't create user table #37

Closed stu-h closed 5 years ago

stu-h commented 5 years ago

Hi there,

I attempted to try out LEMUR using docker but couldn't login, looking at the logs I get a stream of database errors (see below). Any pointers?

lemur-web_1    | Attempt to connect to db.. try #2
lemur-web_1    |  ?column? 
lemur-web_1    | ----------
lemur-web_1    |         1
lemur-web_1    | (1 row)
lemur-web_1    | 
lemur-web_1    | db ready!
lemur-web_1    | 
lemur-web_1    | Creating lemurdb...
lemur-web_1    | CREATE DATABASE
lemur-web_1    | Creating the lemur user...
lemur-web_1    | CREATE ROLE
lemur-web_1    | Changing postgres password...
lemur-web_1    | GRANT
lemur-web_1    | Done changing postgres password...
lemur-web_1    | DONE CREATING lemurdb...
lemur-web_1    | /usr/local/src/lemur/venv/lib/python3.5/site-packages/psycopg2/__init__.py:144: UserWarning: The psycopg2 wheel package will be renamed from release 2.8; in order to keep installing from binary please use "pip install psycopg2-binary" instead. For details see: <http://initd.org/psycopg/docs/install.html#binary-install-from-pypi>.
lemur-web_1    |   """)
lemur-web_1    | Traceback (most recent call last):
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1244, in _execute_context
lemur-web_1    |     cursor, statement, parameters, context
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/sqlalchemy/engine/default.py", line 552, in do_execute
lemur-web_1    |     cursor.execute(statement, parameters)
lemur-web_1    | psycopg2.ProgrammingError: operator class "gin_trgm_ops" does not exist for access method "gin"
lemur-web_1    | 
lemur-web_1    | 
lemur-web_1    | The above exception was the direct cause of the following exception:
lemur-web_1    | 
lemur-web_1    | Traceback (most recent call last):
lemur-web_1    |   File "manage.py", line 551, in <module>
lemur-web_1    |     main()
lemur-web_1    |   File "manage.py", line 547, in main
lemur-web_1    |     manager.run()
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/flask_script/__init__.py", line 417, in run
lemur-web_1    |     result = self.handle(argv[0], argv[1:])
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/flask_script/__init__.py", line 386, in handle
lemur-web_1    |     res = handle(*args, **config)
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/flask_script/commands.py", line 216, in __call__
lemur-web_1    |     return self.run(*args, **kwargs)
lemur-web_1    |   File "manage.py", line 195, in run
lemur-web_1    |     create()
lemur-web_1    |   File "manage.py", line 145, in create
lemur-web_1    |     database.db.create_all()
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/flask_sqlalchemy/__init__.py", line 963, in create_all
lemur-web_1    |     self._execute_for_all_tables(app, bind, 'create_all')
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/flask_sqlalchemy/__init__.py", line 955, in _execute_for_all_tables
lemur-web_1    |     op(bind=self.get_engine(app, bind), **extra)
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/sqlalchemy/sql/schema.py", line 4287, in create_all
lemur-web_1    |     ddl.SchemaGenerator, self, checkfirst=checkfirst, tables=tables
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 2033, in _run_visitor
lemur-web_1    |     conn._run_visitor(visitorcallable, element, **kwargs)
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1607, in _run_visitor
lemur-web_1    |     visitorcallable(self.dialect, self, **kwargs).traverse_single(element)
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/sqlalchemy/sql/visitors.py", line 131, in traverse_single
lemur-web_1    |     return meth(obj, **kw)
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/sqlalchemy/sql/ddl.py", line 781, in visit_metadata
lemur-web_1    |     _is_metadata_operation=True,
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/sqlalchemy/sql/visitors.py", line 131, in traverse_single
lemur-web_1    |     return meth(obj, **kw)
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/sqlalchemy/sql/ddl.py", line 833, in visit_table
lemur-web_1    |     self.traverse_single(index)
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/sqlalchemy/sql/visitors.py", line 131, in traverse_single
lemur-web_1    |     return meth(obj, **kw)
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/sqlalchemy/sql/ddl.py", line 862, in visit_index
lemur-web_1    |     self.connection.execute(CreateIndex(index))
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 988, in execute
lemur-web_1    |     return meth(self, multiparams, params)
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/sqlalchemy/sql/ddl.py", line 72, in _execute_on_connection
lemur-web_1    |     return connection._execute_ddl(self, multiparams, params)
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1050, in _execute_ddl
lemur-web_1    |     compiled,
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1248, in _execute_context
lemur-web_1    |     e, statement, parameters, cursor, context
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1466, in _handle_dbapi_exception
lemur-web_1    |     util.raise_from_cause(sqlalchemy_exception, exc_info)
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/sqlalchemy/util/compat.py", line 383, in raise_from_cause
lemur-web_1    |     reraise(type(exception), exception, tb=exc_tb, cause=cause)
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/sqlalchemy/util/compat.py", line 128, in reraise
lemur-web_1    |     raise value.with_traceback(tb)
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1244, in _execute_context
lemur-web_1    |     cursor, statement, parameters, context
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/sqlalchemy/engine/default.py", line 552, in do_execute
lemur-web_1    |     cursor.execute(statement, parameters)
lemur-web_1    | sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) operator class "gin_trgm_ops" does not exist for access method "gin"
lemur-web_1    | 
lemur-web_1    | [SQL: CREATE INDEX ix_domains_name_gin ON domains USING gin (name gin_trgm_ops)]
lemur-web_1    | (Background on this error at: http://sqlalche.me/e/f405)
lemur-web_1    | /usr/local/src/lemur/venv/lib/python3.5/site-packages/psycopg2/__init__.py:144: UserWarning: The psycopg2 wheel package will be renamed from release 2.8; in order to keep installing from binary please use "pip install psycopg2-binary" instead. For details see: <http://initd.org/psycopg/docs/install.html#binary-install-from-pypi>.
lemur-web_1    |   """)
lemur-web_1    | [2019-04-03 10:57:40 +0000] [63] [INFO] Starting gunicorn 19.9.0
lemur-web_1    | [2019-04-03 10:57:40 +0000] [63] [INFO] Listening at: http://0.0.0.0:8000 (63)
lemur-web_1    | [2019-04-03 10:57:40 +0000] [63] [INFO] Using worker: sync
lemur-web_1    | [2019-04-03 10:57:40 +0000] [68] [INFO] Booting worker with pid: 68
lemur-web_1    | [2019-04-03 10:57:40 +0000] [69] [INFO] Booting worker with pid: 69
lemur-web_1    | [2019-04-03 10:57:40 +0000] [70] [INFO] Booting worker with pid: 70
lemur-web_1    | [2019-04-03 10:57:40 +0000] [71] [INFO] Booting worker with pid: 71
lemur-web_1    | [2019-04-03 10:57:40 +0000] [72] [INFO] Booting worker with pid: 72
lemur-web_1    | [2019-04-03 10:57:40 +0000] [73] [INFO] Booting worker with pid: 73
lemur-web_1    | [2019-04-03 10:58:38,499] ERROR in app: Exception on /api/1/auth/login [POST]
lemur-web_1    | Traceback (most recent call last):
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1244, in _execute_context
lemur-web_1    |     cursor, statement, parameters, context
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/sqlalchemy/engine/default.py", line 552, in do_execute
lemur-web_1    |     cursor.execute(statement, parameters)
lemur-web_1    | psycopg2.ProgrammingError: relation "users" does not exist
lemur-web_1    | LINE 2: FROM users 
lemur-web_1    |              ^
lemur-web_1    | 
lemur-web_1    | 
lemur-web_1    | The above exception was the direct cause of the following exception:
lemur-web_1    | 
lemur-web_1    | Traceback (most recent call last):
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/flask/app.py", line 1813, in full_dispatch_request
lemur-web_1    |     rv = self.dispatch_request()
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/flask/app.py", line 1799, in dispatch_request
lemur-web_1    |     return self.view_functions[rule.endpoint](**req.view_args)
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/flask_restful/__init__.py", line 458, in wrapper
lemur-web_1    |     resp = resource(*args, **kwargs)
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/flask/views.py", line 88, in view
lemur-web_1    |     return self.dispatch_request(*args, **kwargs)
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/flask_restful/__init__.py", line 573, in dispatch_request
lemur-web_1    |     resp = meth(*args, **kwargs)
lemur-web_1    |   File "/usr/local/src/lemur/lemur/auth/views.py", line 262, in post
lemur-web_1    |     user = user_service.get_by_username(args['username'])
lemur-web_1    |   File "/usr/local/src/lemur/lemur/users/service.py", line 109, in get_by_username
lemur-web_1    |     return database.get(User, username, field='username')
lemur-web_1    |   File "/usr/local/src/lemur/lemur/database.py", line 137, in get
lemur-web_1    |     return query.filter(get_model_column(model, field) == value).scalar()
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/sqlalchemy/orm/query.py", line 3305, in scalar
lemur-web_1    |     ret = self.one()
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/sqlalchemy/orm/query.py", line 3275, in one
lemur-web_1    |     ret = self.one_or_none()
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/sqlalchemy/orm/query.py", line 3244, in one_or_none
lemur-web_1    |     ret = list(self)
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/sqlalchemy/orm/query.py", line 3317, in __iter__
lemur-web_1    |     return self._execute_and_instances(context)
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/sqlalchemy/orm/query.py", line 3342, in _execute_and_instances
lemur-web_1    |     result = conn.execute(querycontext.statement, self._params)
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 988, in execute
lemur-web_1    |     return meth(self, multiparams, params)
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/sqlalchemy/sql/elements.py", line 287, in _execute_on_connection
lemur-web_1    |     return connection._execute_clauseelement(self, multiparams, params)
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1107, in _execute_clauseelement
lemur-web_1    |     distilled_params,
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1248, in _execute_context
lemur-web_1    |     e, statement, parameters, cursor, context
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1466, in _handle_dbapi_exception
lemur-web_1    |     util.raise_from_cause(sqlalchemy_exception, exc_info)
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/sqlalchemy/util/compat.py", line 383, in raise_from_cause
lemur-web_1    |     reraise(type(exception), exception, tb=exc_tb, cause=cause)
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/sqlalchemy/util/compat.py", line 128, in reraise
lemur-web_1    |     raise value.with_traceback(tb)
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1244, in _execute_context
lemur-web_1    |     cursor, statement, parameters, context
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/sqlalchemy/engine/default.py", line 552, in do_execute
lemur-web_1    |     cursor.execute(statement, parameters)
lemur-web_1    | sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "users" does not exist
lemur-web_1    | LINE 2: FROM users 
lemur-web_1    |              ^
lemur-web_1    | 
lemur-web_1    | [SQL: SELECT users.id AS users_id, users.password AS users_password, users.active AS users_active, users.confirmed_at AS users_confirmed_at, users.username AS users_username, users.email AS users_email, users.profile_picture AS users_profile_picture 
lemur-web_1    | FROM users 
lemur-web_1    | WHERE users.username = %(username_1)s]
lemur-web_1    | [parameters: {'username_1': 'lemur'}]
lemur-web_1    | (Background on this error at: http://sqlalche.me/e/f405)
lemur-web_1    | Exception on /api/1/auth/login [POST]
lemur-web_1    | Traceback (most recent call last):
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/sqlalchemy/engine/base.py", line 1244, in _execute_context
lemur-web_1    |     cursor, statement, parameters, context
lemur-web_1    |   File "/usr/local/src/lemur/venv/lib/python3.5/site-packages/sqlalchemy/engine/default.py", line 552, in do_execute
lemur-web_1    |     cursor.execute(statement, parameters)
lemur-web_1    | psycopg2.ProgrammingError: relation "users" does not exist
lemur-web_1    | LINE 2: FROM users 
lemur-web_1    | 
kevgliss commented 5 years ago

Fixed by #38