diff --git a/invenio_access/alembic/842a62b56e60_change_fk_accountsrole_to_string.py b/invenio_access/alembic/842a62b56e60_change_fk_accountsrole_to_string.py new file mode 100644 index 0000000..7e1e216 --- /dev/null +++ b/invenio_access/alembic/842a62b56e60_change_fk_accountsrole_to_string.py @@ -0,0 +1,71 @@ +# +# This file is part of Invenio. +# Copyright (C) 2016-2018 CERN. +# +# Invenio is free software; you can redistribute it and/or modify it +# under the terms of the MIT License; see LICENSE file for more details. + +"""Change FK AccountsRole to string.""" + +import sqlalchemy as sa +from alembic import op + +# revision identifiers, used by Alembic. +revision = "842a62b56e60" +down_revision = "04480be1593e" +branch_labels = () +depends_on = "8f11b75e0995" + + +def upgrade(): + """Upgrade database.""" + # ### commands auto generated by Alembic - please adjust! ### + # op.drop_index("ix_uq_partial_files_object_is_head", table_name="files_object") + # ### end Alembic commands ### + + #op.drop_constraint( + # "fk_access_actionsroles_role_id_accounts_role", + # "access_actionsroles", + # type_="foreignkey", + #) + + op.alter_column( + "access_actionsroles", + "role_id", + existing_type=sa.Integer, + type_=sa.String(80), + postgresql_using="role_id::integer", + ) + #op.create_foreign_key( + # op.f("fk_access_actionsroles_role_id_accounts_role"), + # "access_actionsroles", + # "accounts_role", + # ["role_id"], + # ["id"], + # ondelete="CASCADE", + #) + + +def downgrade(): + """Downgrade database.""" + # ### commands auto generated by Alembic - please adjust! ### + op.drop_constraint( + "fk_access_actionsroles_role_id_accounts_role", + "access_actionsroles", + type_="foreignkey", + ) + op.alter_column( + "access_actionsroles", + "role_id", + existing_type=sa.String(80), + type_=sa.Integer, + postgresql_using="role_id::integer", + ) + op.create_foreign_key( + op.f("fk_access_actionsroles_role_id_accounts_role"), + "access_actionsroles", + "accounts_role", + ["role_id"], + ["id"], + ondelete="CASCADE", + ) diff --git a/invenio_access/models.py b/invenio_access/models.py index e83af76..b915712 100644 --- a/invenio_access/models.py +++ b/invenio_access/models.py @@ -156,7 +156,7 @@ class ActionRoles(ActionNeedMixin, db.Model): ) role_id = db.Column( - db.Integer(), + db.String(80), db.ForeignKey(Role.id, ondelete="CASCADE"), nullable=False, index=True,