我正在使用 PostgreSQL 和 Alembic 进行迁移。当我向用户表添加新列时,Alembic 使用以下脚本生成了迁移:
from alembic import op
import sqlalchemy as sa
import random
def generate_toke():
return random.random()
def upgrade():
op.add_column('user', sa.Column('token', sa.String(), nullable=True ))
op.execute('some code here')
我真正想做的是通过generate_toke函数自动生成token的值。如何实现目标
最佳答案
问题是random.random()
是一个python端函数。 alembic 将这些操作转换为 sql,然后执行它们。一种方法是添加 server_default 并使用 postgres random()
函数生成 token :
from alembic import op
import sqlalchemy as sa
def upgrade():
op.add_column('user', sa.Column(
'token',
sa.String(),
server_default=sa.text("random()"),
nullable=True ))
op.execute('some code here')
关于python - 使用alembic升级表时设置不同的列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39227156/