我将 SQLAlchemy 与 Elixir 一起使用,使用 SQLite 一切正常。但是,当我切换到 MySQL 时,有一个表名和列名长度限制(64 个字符)。我有很多具有多个 ManyToMany 关系的实体,但我没有找到一种方法来像MyFirstEntity_rel_otherEntities__MySecondEntity_rel_theFirstEntities
自动方式那样钳制生成的长表名称。
ManyToOne 关系的外键列名称太长,具体取决于类和关系名称。create_engine("...", label_length = 64)
没有做到这一点,我已经用它shortcolumns = True
来避免将整个 Python 模块名称也用作前缀。
我看到的唯一方法是遍历整个架构并手动定义表名(对于多对多关系)和列名(对于多对一关系)。还有其他选择吗?