Web2Py cria tabela com CHAR(512) e preciso de CHAR(2)

23 views
Skip to first unread message

Amauri Rossetti Giovani

unread,
Mar 19, 2017, 2:08:38 AM3/19/17
to web2py-users-brazil
Por favor, onde estou errando?
O Web2Py cria a tabela com o formato máximo de 512 sendo que especifico length=2. Porque isso ocorre? Como faço para ocupar somente o espaço necessário no banco?
Usar 512 pra armazenar apenas uma sigla de cidade com 2 caracteres é inviável.

Em models.py:
SC = db.define_table('sigla_cidade',
Field('sigla', length=2),
format = '%(sigla)s'
)

SQL gerado:
CREATE TABLE sigla_cidade(
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    sigla CHAR(512)
);


Ovidio Marinho

unread,
Mar 19, 2017, 7:54:26 AM3/19/17
to web2py-us...@googlegroups.com
Qual o Banco de Dados que voce esta utilizando?






                   http://itjp.net.br
                     http://itjp.net.br
          Ovidio Marinho Falcao Neto
                 ovid...@gmail.com

                            Brasil
            

--
Você recebeu essa mensagem por estar inscrito no grupo web2py-users-brazil.
Para enviar uma mensagem ao grupo, envie email a: web2py-users-brazil@googlegroups.com
Para se desinscrever, envie email a: web2py-users-brazil+unsub...@googlegroups.com
Para mais opções, visite o site do grupo em: http://groups.google.com/group/web2py-users-brazil?hl=en
---
Você recebeu essa mensagem porque está inscrito no grupo "web2py-users-brazil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para web2py-users-brazil+unsub...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Amauri Rossetti Giovani

unread,
Mar 19, 2017, 12:08:24 PM3/19/17
to web2py-users-brazil
Estou em desenvolvimento e por isso estou usando o padrão mesmo, SQLite3.
Criei essa tabela sem especificar o tamanho e quando incluí length=2, não alterou na estrutura da tabela.
Daí, criei uma app só pra testar isso e percebi que o Web2Py só leva em consideração quando você cria a tabela, não adiantando alterar o length.
Criei com length=2, depois alterei pra length=4 e depois pra length=10. Observe que ele tem 3 success! no sql.log mas continuou com length=2 ou CHAR(2).

Em models.py:
SC = db.define_table('sigla_cidade',
Field('sigla', length=10),
format = '%(sigla)s'
)

Em sql.log:
timestamp: 2017-03-19T12:39:04.336649

CREATE TABLE sigla_cidade(
id INTEGER PRIMARY KEY AUTOINCREMENT,
    sigla CHAR(2)
);
success!
success!
success!

Sei que não se deve usar SQLite3 em produção mas isso é um problema.

Marlysson Silva

unread,
Mar 19, 2017, 6:14:06 PM3/19/17
to web2py-users-brazil
Não testei mas a cada alteração no model você tentou restartar o servidor? Pois pode ser que para fazer a migração precise de uma nova instância para ler os models novamente.

Só acho

Ari Sobel

unread,
Mar 20, 2017, 10:24:40 AM3/20/17
to web2py googlegroups
suspeito  Field('sigla', length=2), só mexa no Input de formulário, mas não no tamanho real do campo.

Ari Sobel

unread,
Mar 20, 2017, 10:27:53 AM3/20/17
to web2py googlegroups

Para se desinscrever, envie email a: web2py-users-brazil+unsubscribe...@googlegroups.com

Para mais opções, visite o site do grupo em: http://groups.google.com/group/web2py-users-brazil?hl=en
---
Você recebeu essa mensagem porque está inscrito no grupo "web2py-users-brazil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para web2py-users-brazil+unsubscribe...@googlegroups.com.

Amauri Rossetti Giovani

unread,
Mar 21, 2017, 7:10:47 PM3/21/17
to web2py-users-brazil
Bom, agradeço as respostas. 
Mesmo que ele crie a tabela com CHAR(2) e você inserir mais caracteres, ele aceita. Pelo form no Web2Py não dá mas pelo shell ele insere o registro sim.
Esse tipo de comportamento não é legal. 
Não sabia disso pois só uso ele pra teste. Agora já estou mais esperto com SQLite!
Fica a dica pra quem não sabia.

Valeu!

Carlos Costa

unread,
Mar 22, 2017, 7:29:15 AM3/22/17
to web2py-us...@googlegroups.com
Aceita outros tipos de dados também.

--
Você recebeu essa mensagem por estar inscrito no grupo web2py-users-brazil.
Para enviar uma mensagem ao grupo, envie email a: web2py-users-brazil@googlegroups.com
Para se desinscrever, envie email a: web2py-users-brazil+unsub...@googlegroups.com

Para mais opções, visite o site do grupo em: http://groups.google.com/group/web2py-users-brazil?hl=en
---
Você recebeu essa mensagem porque está inscrito no grupo "web2py-users-brazil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para web2py-users-brazil+unsub...@googlegroups.com.

Para mais opções, acesse https://groups.google.com/d/optout.



--


Carlos J. Costa
Cientista da Computação  | BS Computer Science
Esp. Gestão em Telecom   |
PgC Telecom Mangement
<º))><
Reply all
Reply to author
Forward
0 new messages