我有一个表,我需要在 a 列之后添加 a_1 列,表结构类似于 a、b、c、d 列?我该如何添加它?
下面的查询在 d 之后添加列,但我想在 a 之后添加列?
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.add_column('sample_table', sa.Column('a_1', mysql.JSON(), nullable=True, ))
# ### end Alembic commands ###
def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_column('sample_table', 'a_1')
# ### end Alembic commands ###
最佳答案
add_column(table_name, column, schema=None)
使用当前迁移上下文发出“添加列”指令。
例如:
from alembic import op
from sqlalchemy import Column, String
op.add_column('organization',
Column('name', String())
)
提供的 Column 对象还可以指定一个 ForeignKey,引用一个远程表名。 Alembic 将自动生成一个 stub “引用”表并发出第二个 ALTER 语句以单独添加约束:
from alembic import op
from sqlalchemy import Column, INTEGER, ForeignKey
op.add_column('organization',
Column('account_id', INTEGER, ForeignKey('accounts.id'))
)
请注意,此语句使用 SQLAlchemy 库中的 Column 构造。特别是,要在数据库端创建的默认值是使用 server_default 参数指定的,而不是仅指定 Python 端默认值的 default :
from alembic import op
from sqlalchemy import Column, TIMESTAMP, func
# specify "DEFAULT NOW" along with the column add
op.add_column('account',
Column('timestamp', TIMESTAMP, server_default=func.now())
)
参数 table_name – 父表的字符串名称。
column – 表示新列的 sqlalchemy.schema.Column 对象。
schema – 在其中操作的可选模式名称。要控制默认行为之外的架构引用,请使用 SQLAlchemy 构造 quoted_name。
关于python - 如何在 sqlalchemy for mysql 中的另一列之后添加一列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66704308/