alembic: change to no longer sort index cols for index sig produces false positives on mysql
Describe the bug Although my database with unique constraints across multiple columns matches my table model exactly, alembic generates drop_index/drop_constraint commands.
Expected behavior alembic revision --autogenerate shouldn’t generate any code
To Reproduce
# This is an example table of mine with a unique constraint across multiple columns
class DisturbanceRecorder(Base):
__tablename__ = 'disturbance_recorders'
__table_args__ = (sa.UniqueConstraint("device_name", "contact_id"),)
id = sa.Column(sa.Integer, primary_key=True)
device_name = sa.Column(sa.String(255), nullable=False)
contact_id = sa.Column(sa.ForeignKey('contacts.id', ondelete='RESTRICT'), index=True, nullable=False)
contact = sa.orm.relationship("Contact")
# my database has everything setup according to the table model, but
# alembic revision --autogenerate generates following code
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_constraint('device_name', 'disturbance_recorders', type_='unique')
op.drop_index('device_name', table_name='disturbance_recorders')
# ### end Alembic commands ###
Versions.
- OS: Windows 10 Pro 22H2
- Python: 3.9.1
- Alembic: >= 1.10.0
- SQLAlchemy: 1.3.23
- Database: MySQL 5.5.46
- DBAPI:
Additional context I recently updated from alembic==1.5.4 to the latest release 1.10.4 and observed the bug. I tested all versions and realized, that all version >= 1.10.0 do not work for me. I downgraded to alembic==1.9.4 which does not show any misbehavior.
Have a nice day!
About this issue
- Original URL
- State: closed
- Created a year ago
- Comments: 16 (12 by maintainers)
@CaselIT I’m able to reproduce on Mariadb 10 with this model on linux:
also it might not happen every time, run it ia few times. does that reproduce for you?
also platform, case sensitivity settings, please include a complete “SHOW CREATE TABLE”