我正在努力寻找一种干净的方法(没有原始 SQL)来在 alembic 中设置列顺序。例如,我想在“id”列之后放置一个名为“name”的新列,如下所示:
from alembic import op
import sqlalchemy as sa
...
op.add_column(
'people',
sa.Column(
'name',
sa.String(),
nullable=False
),
after='id'
)
但当然,alembic 没有 'after' 参数,因此此代码失败,我在文档中没有找到与此 'after' 参数等效的参数。我只能在表的末尾附加该列。
有人可以建议如何在 alembic/sqlalchemy 中实现我想要的吗?没有原始 SQL 可能吗?
最佳答案
将它们切成单独的嵌套列表,以插入列之前的列结尾(因此在这种情况下,创建一个以“id”列结尾的嵌套列表。
让我们称这个变量为 id_col
现在,您可以使用内置的“extend”或“append”在 id 列之后添加“name”列。
您还可以添加嵌套列表,最终得到一个包含您要查找的内容的最终单个数据结构。
这里的重点是,您不必受限于只使用 SQL 表格式。您可以将其转换为嵌套列表,然后使用列表方法合并后,将它们重新转换回所需的 SQL 表。
关于python - 添加新列时在 Alembic 中设置列顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50601917/