2016-08-30 5 views
1

PostgreSQL과 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') 

내가 실제로 내가 목표

답변

0
을 달성 할 수있는 generate_toke의 function.How에 의해 토큰의 값을로 자동으로 생성됩니다 싶지

문제는 random.random()은 파이썬 측 기능입니다. alembic은 이러한 작업을 sql로 변경하고 을 입력 한 다음을 실행합니다. 한 가지 방법은 server_default를 추가하고 postgres random() 함수를 사용하여 토큰을 생성하는 것입니다.

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')