Inserir dados na tabela auth_group

43 views
Skip to first unread message

Flavio Santos

unread,
Apr 23, 2014, 1:59:51 PM4/23/14
to web2py-us...@googlegroups.com
Olá amigos. Estou começando a dar meus primeiros passos com web2py.

Pra começar: no banco local usando sqlite o problema abaixo não ocorre. (em localhost funciona tudo direitinho)
Meu problema: ao iniciar o banco gostaria de já inserir alguns grupos predefinidos na tabela auth_group e no servidor recebo o erro:

<class '_mysql_exceptions.OperationalError'> (1701, 'Cannot truncate a table referenced in a foreign key constraint (`meusistema`.`auth_permission`, CONSTRAINT `auth_permission_ibfk_1` FOREIGN KEY (`group_id`) REFERENCES `meusistema`.`auth_group` (`id`))')

Configurações db.py
-Desabilitei a criação automática de grupos: auth.settings.create_user_groups = None
-Todo novo cadastro será do grupo 1: auth.settings.everybody_group_id = 1

No model db.py coloquei logo abaixo das configurações das tabelas:
if not db(db.auth_group).count():
    #para zerar o contador de auto incremento
    db.auth_group.truncate()
    db.auth_group.insert(role='Usuário Comum', description='Usuário Comum')
    db.auth_group.insert(role='Nível 2', description='Nível 2')
    db.auth_group.insert(role='Nível 3', description='Nível 3')
    db.auth_group.insert(role='Nível 4', description='Nível 4')
    db.auth_group.insert(role='Nível 5', description='Nível 5')
    db.auth_group.insert(role='Admin Gerente', description='Gerente')
    db.auth_group.insert(role='Admin Master', description='Administrador Master do Sistema')

Se eu tirar essa parte de inserção o sistema no servidor funciona direitinho.

Obrigado desde já pela a ajuda.
Flávio Santos

Carlos Costa

unread,
Apr 23, 2014, 4:41:46 PM4/23/14
to web2py-us...@googlegroups.com
O problem está na linha db.auth_group.truncate()
Provavelmente por que você já tem registros na tabela auth_group que são referenciados na tabela auth_permission.
Então ocorre um erro de chave estrangeira.
Você pode tentar então truncar a tabela auth_permission primeiro.
Provavelmente vai dar o mesmo erro com a tabela auth_membership pois ela também faz referência ao id do auth_group.

Pode dar um delete manual também


--
Você recebeu essa mensagem por estar inscrito no grupo web2py-users-brazil.
Para enviar uma mensagem ao grupo, envie email a: web2py-us...@googlegroups.com
Para se desinscrever, envie email a: web2py-users-br...@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 quot;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-br...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--
Att.

Carlos J. Costa
Cientista da Computação
Esp. Gestão em Telecom

EL MELECH NEEMAN!
אָמֵן

Flavio Santos

unread,
Apr 24, 2014, 5:28:51 PM4/24/14
to web2py-us...@googlegroups.com
Olá Carlos,

Muito obrigado por responder!
Você tem toda razão. Quando tirei a linha db.auth_group.truncate() funcionou perfeito.
Tentei truncar antes a tabela auth_permission e deu o mesmo problema com a tabela auth_membership.
Trunquei a auth_membership e deu o mesmo problema na tabela auth_group... fica nesse loop horrível...

Teria uma outra maneira para voltar o contador do incremento para 1 automaticamente quando a tabela ficar vazia?
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 quot;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 Costa

unread,
Apr 24, 2014, 6:03:03 PM4/24/14
to web2py-us...@googlegroups.com
Primeiro responda a minha curiosidade, por favor.
Qual a necessidade de volar o contador?
Você está se referindo ao id ou ao número de registros somente?




Para se desinscrever, envie email a: web2py-users-br...@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 quot;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-br...@googlegroups.com.

Para mais opções, acesse https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages