sexta-feira, janeiro 07, 2011

Migrando tipo de campo no web2py em 6 passos


1. crie um segundo campo com tipo de dado desejado na mesma tabela

Field('valor2','decimal(20,2)'),

2. Crie uma rotina de transformação no dado desejado
for row in db(db.execucao_orcamentaria.id>0).select():
    row.update_record(valor2=to_decimal(row.valor))
    
3. Exclua a linha original
    Field('ano_referencia','integer',default=ANO,writable=False),
>deveria estar aquiv
    Field('valor2','decimal(20,2)'),
    Field('data_execucao', 'date',label='Data de Execução da Despesa',requires=data,represent= lambda field: make_data(field))
   
4. insira a nova linha, com o tipo de dado desejado

    Field('ano_referencia','integer',default=ANO,writable=False),
    Field('valor','decimal(20,2)',requires=E_DINHEIRO()),
    Field('valor2','decimal(20,2)'),
    Field('data_execucao', 'date',label='Data de Execução da Despesa',requires=data,represent= lambda field: make_data(field))
   
5. atualize o novo campo com os valores do anterior.

for row in db(db.execucao_orcamentaria.id>0).select():
    row.update_record(valor=row.valor2)
    
6. Exclua o campo 2
--
Atenciosamente


Alexandre Andrade
Hipercenter.com Classificados Gratuitos e Inteligentes