flask database create-tables: psycopg2.errors.InsufficientPrivilege: permission denied for schema public
I'm following the installation guide at https://gitlab.com/liberaforms/liberaforms/-/blob/main/docs/INSTALL.md. I'm now stuck at 'flask database create-tables'. It gives a permission error. I also had that when I did 'flask database create', but the alternative on the next line worked well, but there's no alternative for creating the tables. So the database is now set-up, but without tables.
I'm guessing there is some easy way to add the tables to the database, but I couldn't find it in the code.
Errors:
(venv) root:/opt/liberaforms# flask database create-tables
Traceback (most recent call last):
File "/opt/liberaforms/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1900, in _execute_context
self.dialect.do_execute(
File "/opt/liberaforms/venv/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 736, in do_execute
cursor.execute(statement, parameters)
psycopg2.errors.InsufficientPrivilege: permission denied for schema public
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/opt/liberaforms/venv/bin/flask", line 8, in <module>
sys.exit(main())
File "/opt/liberaforms/venv/lib/python3.9/site-packages/flask/cli.py", line 1047, in main
cli.main()
File "/opt/liberaforms/venv/lib/python3.9/site-packages/click/core.py", line 1055, in main
rv = self.invoke(ctx)
File "/opt/liberaforms/venv/lib/python3.9/site-packages/click/core.py", line 1657, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/opt/liberaforms/venv/lib/python3.9/site-packages/click/core.py", line 1657, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/opt/liberaforms/venv/lib/python3.9/site-packages/click/core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/opt/liberaforms/venv/lib/python3.9/site-packages/click/core.py", line 760, in invoke
return __callback(*args, **kwargs)
File "/opt/liberaforms/venv/lib/python3.9/site-packages/click/decorators.py", line 26, in new_func
return f(get_current_context(), *args, **kwargs)
File "/opt/liberaforms/venv/lib/python3.9/site-packages/flask/cli.py", line 357, in decorator
return __ctx.invoke(f, *args, **kwargs)
File "/opt/liberaforms/venv/lib/python3.9/site-packages/click/core.py", line 760, in invoke
return __callback(*args, **kwargs)
File "/opt/liberaforms/liberaforms/commands/database.py", line 67, in create_tables
db.create_all()
File "/opt/liberaforms/venv/lib/python3.9/site-packages/flask_sqlalchemy/extension.py", line 868, in create_all
self._call_for_binds(bind_key, "create_all")
File "/opt/liberaforms/venv/lib/python3.9/site-packages/flask_sqlalchemy/extension.py", line 849, in _call_for_binds
getattr(metadata, op_name)(bind=engine)
File "/opt/liberaforms/venv/lib/python3.9/site-packages/sqlalchemy/sql/schema.py", line 4917, in create_all
bind._run_ddl_visitor(
File "/opt/liberaforms/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 3228, in _run_ddl_visitor
conn._run_ddl_visitor(visitorcallable, element, **kwargs)
File "/opt/liberaforms/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 2211, in _run_ddl_visitor
visitorcallable(self.dialect, self, **kwargs).traverse_single(element)
File "/opt/liberaforms/venv/lib/python3.9/site-packages/sqlalchemy/sql/visitors.py", line 524, in traverse_single
return meth(obj, **kw)
File "/opt/liberaforms/venv/lib/python3.9/site-packages/sqlalchemy/sql/ddl.py", line 838, in visit_metadata
metadata.dispatch.before_create(
File "/opt/liberaforms/venv/lib/python3.9/site-packages/sqlalchemy/event/attr.py", line 334, in __call__
fn(*args, **kw)
File "/opt/liberaforms/venv/lib/python3.9/site-packages/sqlalchemy/util/langhelpers.py", line 875, in __call__
return getattr(self.target, self.name)(*arg, **kw)
File "/opt/liberaforms/venv/lib/python3.9/site-packages/sqlalchemy/dialects/postgresql/base.py", line 2149, in _on_metadata_create
self.create(bind=bind, checkfirst=checkfirst)
File "/opt/liberaforms/venv/lib/python3.9/site-packages/sqlalchemy/dialects/postgresql/base.py", line 2042, in create
bind._run_ddl_visitor(self.EnumGenerator, self, checkfirst=checkfirst)
File "/opt/liberaforms/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 2211, in _run_ddl_visitor
visitorcallable(self.dialect, self, **kwargs).traverse_single(element)
File "/opt/liberaforms/venv/lib/python3.9/site-packages/sqlalchemy/sql/visitors.py", line 524, in traverse_single
return meth(obj, **kw)
File "/opt/liberaforms/venv/lib/python3.9/site-packages/sqlalchemy/dialects/postgresql/base.py", line 2083, in visit_enum
self.connection.execute(CreateEnumType(enum))
File "/opt/liberaforms/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1380, in execute
return meth(self, multiparams, params, _EMPTY_EXECUTION_OPTS)
File "/opt/liberaforms/venv/lib/python3.9/site-packages/sqlalchemy/sql/ddl.py", line 80, in _execute_on_connection
return connection._execute_ddl(
File "/opt/liberaforms/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1472, in _execute_ddl
ret = self._execute_context(
File "/opt/liberaforms/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1943, in _execute_context
self._handle_dbapi_exception(
File "/opt/liberaforms/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 2124, in _handle_dbapi_exception
util.raise_(
File "/opt/liberaforms/venv/lib/python3.9/site-packages/sqlalchemy/util/compat.py", line 208, in raise_
raise exception
File "/opt/liberaforms/venv/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1900, in _execute_context
self.dialect.do_execute(
File "/opt/liberaforms/venv/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 736, in do_execute
cursor.execute(statement, parameters)
sqlalchemy.exc.ProgrammingError: (psycopg2.errors.InsufficientPrivilege) permission denied for schema public
[SQL: CREATE TYPE roles_enum AS ENUM ('guest', 'editor', 'admin')]
(Background on this error at: https://sqlalche.me/e/14/f405)