Fix migration to support Postgres database
Currently the constraint name fixes
migration does not run with the postgresql+psycopg2
driver.
Instead it outputs
INFO [alembic.runtime.migration] Running upgrade 5a07d4a63b64 -> cbca20cf64d9, constraint name fixes
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 1276, in _execute_context
self.dialect.do_execute(
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/default.py", line 609, in do_execute
cursor.execute(statement, parameters)
psycopg2.errors.UndefinedObject: constraint "ck_invite_used" of relation "invite" does not exist
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/bin/flask", line 33, in <module>
sys.exit(load_entry_point('Flask==1.1.2', 'console_scripts', 'flask')())
File "/usr/lib/python3/dist-packages/flask/cli.py", line 967, in main
cli.main(args=sys.argv[1:], prog_name="python -m flask" if as_module else None)
File "/usr/lib/python3/dist-packages/flask/cli.py", line 586, in main
return super(FlaskGroup, self).main(*args, **kwargs)
File "/usr/lib/python3/dist-packages/click/core.py", line 782, in main
rv = self.invoke(ctx)
File "/usr/lib/python3/dist-packages/click/core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/lib/python3/dist-packages/click/core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/lib/python3/dist-packages/click/core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/lib/python3/dist-packages/click/core.py", line 610, in invoke
return callback(*args, **kwargs)
File "/usr/lib/python3/dist-packages/click/decorators.py", line 21, in new_func
return f(get_current_context(), *args, **kwargs)
File "/usr/lib/python3/dist-packages/flask/cli.py", line 426, in decorator
return __ctx.invoke(f, *args, **kwargs)
File "/usr/lib/python3/dist-packages/click/core.py", line 610, in invoke
return callback(*args, **kwargs)
File "/usr/lib/python3/dist-packages/flask_migrate/cli.py", line 136, in upgrade
_upgrade(directory, revision, sql, tag, x_arg)
File "/usr/lib/python3/dist-packages/flask_migrate/__init__.py", line 96, in wrapped
f(*args, **kwargs)
File "/usr/lib/python3/dist-packages/flask_migrate/__init__.py", line 271, in upgrade
command.upgrade(config, revision, sql=sql, tag=tag)
File "/usr/lib/python3/dist-packages/alembic/command.py", line 298, in upgrade
script.run_env()
File "/usr/lib/python3/dist-packages/alembic/script/base.py", line 489, in run_env
util.load_python_file(self.dir, "env.py")
File "/usr/lib/python3/dist-packages/alembic/util/pyfiles.py", line 98, in load_python_file
module = load_module_py(module_id, path)
File "/usr/lib/python3/dist-packages/alembic/util/compat.py", line 184, in load_module_py
spec.loader.exec_module(module)
File "<frozen importlib._bootstrap_external>", line 790, in exec_module
File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
File "/usr/share/uffd/uffd/migrations/env.py", line 87, in <module>
run_migrations_online()
File "/usr/share/uffd/uffd/migrations/env.py", line 80, in run_migrations_online
context.run_migrations()
File "<string>", line 8, in run_migrations
File "/usr/lib/python3/dist-packages/alembic/runtime/environment.py", line 846, in run_migrations
self.get_context().run_migrations(**kw)
File "/usr/lib/python3/dist-packages/alembic/runtime/migration.py", line 522, in run_migrations
step.migration_fn(**kw)
File "/usr/share/uffd/uffd/migrations/versions/cbca20cf64d9_constraint_name_fixes.py", line 90, in upgrade
pass
File "/usr/lib/python3.9/contextlib.py", line 124, in __exit__
next(self.gen)
File "/usr/lib/python3/dist-packages/alembic/operations/base.py", line 353, in batch_alter_table
impl.flush()
File "/usr/lib/python3/dist-packages/alembic/operations/batch.py", line 116, in flush
batch_impl._create(self.impl)
File "/usr/lib/python3/dist-packages/alembic/operations/batch.py", line 357, in _create
op_impl.prep_table_for_batch(self.table)
File "/usr/lib/python3/dist-packages/alembic/ddl/postgresql.py", line 48, in prep_table_for_batch
self.drop_constraint(constraint)
File "/usr/lib/python3/dist-packages/alembic/ddl/impl.py", line 248, in drop_constraint
self._exec(schema.DropConstraint(const))
File "/usr/lib/python3/dist-packages/alembic/ddl/impl.py", line 141, in _exec
return conn.execute(construct, *multiparams, **params)
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 1011, in execute
return meth(self, multiparams, params)
File "/usr/lib/python3/dist-packages/sqlalchemy/sql/ddl.py", line 72, in _execute_on_connection
return connection._execute_ddl(self, multiparams, params)
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 1068, in _execute_ddl
ret = self._execute_context(
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 1316, in _execute_context
self._handle_dbapi_exception(
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 1510, in _handle_dbapi_exception
util.raise_(
File "/usr/lib/python3/dist-packages/sqlalchemy/util/compat.py", line 182, in raise_
raise exception
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 1276, in _execute_context
self.dialect.do_execute(
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/default.py", line 609, in do_execute
cursor.execute(statement, parameters)
sqlalchemy.exc.ProgrammingError: (psycopg2.errors.UndefinedObject) constraint "ck_invite_used" of relation "invite" does not exist
[SQL: ALTER TABLE invite DROP CONSTRAINT ck_invite_used]
(Background on this error at: http://sqlalche.me/e/13/f405)
while the database outputs
2021-10-09 00:34:04.819 UTC [65] ERROR: constraint "ck_invite_used" of relation "invite" does not exist
2021-10-09 00:34:04.819 UTC [65] STATEMENT: ALTER TABLE invite DROP CONSTRAINT ck_invite_used