wiki:Servicos/Postgres

Version 17 (modified by niltonneto, 13 years ago) (diff)

--

PostgreSQL

O PostgreSQL é hoje a melhor alternativa de bancos de dados em software livre e um dos bancos mais confiáveis da atualidade. Aguenta uma carga superior a muitos outros bancos e por ter custo zero, foi escolhido como o padrão para o Expresso. São guardados no banco dados necessários à execução da aplicação, flags, variáveis dos serviços de correio, entre outros.

O banco de dados do Expresso, guarda informações como preferências, eventos do calendário, catálogo pessoal e informações do próprio sistema do expresso.

Configuração de Acesso

Certifique-se que seu arquivo /etc/postgres/pg_hba.conf está assim:

# TYPE  DATABASE    USER        IP-ADDRESS        IP-MASK           METHOD
local   all         postgres                                        trust
# All IPv4 connections from localhost
host    all         all         127.0.0.1         255.255.255.255   trust
# reject all other connection attempts
host    all         all         0.0.0.0           0.0.0.0           reject

Gerenciando Banco de Dados

Pra administrar o postgres você deve se logar como usuário postgres

# su -l postgres
# # como root ele não pede senha

Agora você precisa ter um banco de dados funcional. Para isso pegue o dump em anexo nesta página. Este dump possui palavras no meio do texto que precisam ser substituídas, faça o seguinte:

sed -e "s/LDAP_DN/*SUA BASE*/g" -e "s/LDAP_PWD/*SUA SENHA*/g" -e "s/ORG/*ORGANIZACAO*/g" -e "s/DOMAIN/*SEU DOMINIO*/g" expresso.dump > meu_expresso.dump

Por exemplo: Se sua organização é celepar, e o domínio é celepar.pr.gov.br

sed -e "s/LDAP_DN/dc=celepar,dc=pr,dc=gov,dc=br/g" -e "s/LDAP_PWD/senha/g" -e "s/ORG/celepar/g" -e "s/DOMAIN/celepar.pr.gov.br/g" expresso.dump > meu_expresso.dump

Depois:

 $ sudo su postgres
 $ dropdb expresso # Apaga o banco expresso!!!
 $ createdb -E LATIN1 expresso
 $ psql -f meu_expresso.dump expresso

Como distribuir o serviço em outro servidor

O Expresso já prevê a distribuição dos seus serviços em outros servidores. Para o PostgreSQL, MySQL ou outro banco, proceda da seguinte forma:

- Execute todo o procedimento para criação ou exportação do banco do Expresso para o novo servidor;

- Edite o arquivo /var/www/expresso/header.inc.php;

- Para a apontar, mude as seguintes linhas:
                'db_host' => '<ip ou nome do servidor>',
                'db_port' => '<porta>',
                'db_name' => '<nome do banco>',
                'db_user' => '<usuario>',
                'db_pass' => '<senha>'
                'db_type' => 'pgsql'

Arquivo dump da base expresso

expresso.dump

Descrição das tabelas existentes

-- Table: phpgw_access_log -- Contém os logs de acesso ao Expresso. ID da sessão, login e IP de origem da conexão são algumas das informações registradas;


-- Table: phpgw_accounts -- Não é utilizada pelo Expresso, já que todos os atributos dos usuários ficam no LDAP


-- Table: phpgw_acl -- Controle de permissões internas do Expresso. É nesta tabela que estão as associações entre usuários, grupos e módulos.


-- Table: phpgw_addressbook -- Não é utilizada pelo Expresso, pois não usa o módulo addressbook do egroupware.


-- Table: phpgw_addressbook_extra -- Não é utilizada pelo Expresso, pois não utiliza o módulo addressbook do egroupware.


-- Table: phpgw_app_sessions -- Não é utilizada pelo Expresso, pois a sessão do usuário não fica armazenada no banco de dados.


-- Table: phpgw_applications -- Registra os módulos instalados e suas respectivas dependências (de outros módulos) e versões.


-- Table: phpgw_async -- Contem os alarmes dos agendamentos. Um script php (externo e executado pelo cron) verifica o conteúdo desta tabela periodicamente, para disparar os alarmes.


-- Table: phpgw_cal -- Contém os agendamentos com suas principais informações (data início/fim, descrição, título, tipo, ...)


-- Table: phpgw_cal_extra -- Não é utilizada pela Agenda do Expresso Livre.


-- Table: phpgw_cal_holidays -- Usado na Agenda do Expresso. Contém todos os feriados que devem ser carregados por script existente no site da comunidade Expresso Livre.


-- Table: phpgw_cal_repeats -- Contem as informações (id agendamento, início, fim, ...) dos agendamentos que se repetem.


-- Table: phpgw_cal_user -- Contém as referencias entre os agendamentos e os usuários (participantes);


-- Table: phpgw_categories -- Contém todas as categorias utilizadas pelos módulos do Expresso. Possui três níveis de categoria: por usuário, por módulo, e geral.


-- Table: phpgw_cc_addresses -- Contém todos os endereços (Residenciais e Comerciais) dos contatos do módulo contactcenter.


-- Table: phpgw_cc_city -- Contém todas as cidades usadas nos endereços dos contatos, do módulo contactcenter.


-- Table: phpgw_cc_company -- Não existe nenhuma implementação feita para seu uso no módulo contactcenter.


-- Table: phpgw_cc_company_addrs -- Não existe nenhuma implementação feita para seu uso no módulo contactcenter.


-- Table: phpgw_cc_company_conns -- Não existe nenhuma implementação feita para seu uso no módulo contactcenter.


-- Table: phpgw_cc_company_legals -- Não existe nenhuma implementação feita para seu uso no módulo contactcenter.


-- Table: phpgw_cc_company_rels -- Não existe nenhuma implementação feita para seu uso no módulo contactcenter.


-- Table: phpgw_cc_connections -- Contém todos as conexões, que são os emails e os telefones dos contatos, do módulo contactcenter.


-- Table: phpgw_cc_contact -- Contém todos os contatos dos usuários, do módulo contactcenter.


-- Table: phpgw_cc_contact_addrs -- Contém o relacionamento entre os contatos e seus endereços (comerciais/residenciais).


-- Table: phpgw_cc_contact_company -- Não existe nenhuma implementação feita para seu uso no módulo contactcenter.


-- Table: phpgw_cc_contact_conns -- Contém o relacionamento entre os contatos e seus emails e telefones.


-- Table: phpgw_cc_contact_grps -- Contém o relacionamento entre grupos pessoais e os emails que pertencem a eles.


-- Table: phpgw_cc_contact_rels -- Não existe nenhuma implementação feita para seu uso no módulo contactcenter.


-- Table: phpgw_cc_groups -- Contém todos os grupos dos usuários, do módulo contactcenter.


-- Table: phpgw_cc_prefixes -- Não existe nenhuma implementação feita para seu uso no módulo contactcenter.


-- Table: phpgw_cc_state -- Contém todos os estados usados nos endereços dos contatos, do módulo contactcenter.


-- Table: phpgw_cc_status -- Não existe nenhuma implementação feita para seu uso no módulo contactcenter.


-- Table: phpgw_cc_suffixes -- Não existe nenhuma implementação feita para seu uso no módulo contactcenter.


-- Table: phpgw_cc_typeof_co_addrs -- Não existe nenhuma implementação feita para seu uso no módulo contactcenter.


-- Table: phpgw_cc_typeof_co_conns -- Não existe nenhuma implementação feita para seu uso no módulo contactcenter.


-- Table: phpgw_cc_typeof_co_legals -- Não existe nenhuma implementação feita para seu uso no módulo contactcenter.


-- Table: phpgw_cc_typeof_co_rels -- Não existe nenhuma implementação feita para seu uso no módulo contactcenter.


-- Table: phpgw_cc_typeof_ct_addrs -- Contém os tipos de endereços usados nos contatos, no módulo contactcenter. Atualmente são valores fixos: Residencial (1) e Comercial (2)


-- Table: phpgw_cc_typeof_ct_conns -- Contém os tipos de conexões usadas pelos contatos, no módulo contactcenter. Atualmente são valores fixos: Email (1) e Telefone (2)


-- Table: phpgw_cc_typeof_ct_rels -- Não existe nenhuma implementação feita para seu uso no módulo contactcenter.


-- Table: phpgw_certificados -- Contém os certificados revogados.


-- Table: phpgw_config -- Contém todos os campos das configurações dos módulos instalados no Expresso.


-- Table: phpgw_emailadmin -- Contém todos os campos de configuração do módulo emailadmin usado pelo Expresso. Atualmente o Expreso implementa apenas um perfil de configuração de email.


-- Table: phpgw_expressoadmin -- Contém as permissões de acesso (editar/remover/adicionar foto, email, grupo,etc..) de todos os gerentes do ExpressoAdmin.


-- Table: phpgw_expressoadmin_apps -- Contém as aplicações que os gerentes do ExpressoAdmin podem liberar para seus usuários e seus grupos.


-- Table: phpgw_expressoadmin_log -- Registro de todas as operações executadas pelos gerentes do ExpressoAdmin.


-- Table: phpgw_expressoadmin_passwords -- Área temporária para armazenamento da senha MD5 do usuário, quando há intervenção do administrador para acesso à conta, através do botão "Seta senha padrão".


-- Table: phpgw_expressoadmin_samba -- Contém informações dos domínios Samba utilizados.


-- Table: phpgw_expressomail_contacts -- Contém os contatos dinâmicos dos usuários, do módulo expressomail.


-- Table: phpgw_history_log -- Não é utilizado pelo Expresso Livre.


-- Table: phpgw_hooks -- Contém todos os hooks de todos os módulos do Expresso. Hooks são páginas auxiliares utilizadas pelos módulos. Podem ser menus laterais, preferencias, configurações, etc.


-- Table: phpgw_interserv -- Contém informações para se conectar em outros servidores via chamada XMLRPC. Atualmente o Expresso não implementa esse serviço.


-- Table: phpgw_lang -- Contém todas as frases (key/value pair) de todos os idiomas instalados, de todos os módulos do Expresso.


-- Table: phpgw_languages -- Contém o nome e a disponibilidade de todos os idiomas dentro do Expresso.


-- Table: phpgw_links -- Não é utilizado pelo Expresso Livre.


-- Table: phpgw_log -- Contém registro de problemas dos módulos em tempo de execução, ocorrido durante a utilização por determinado usuário. Não é utilizado pelo Expresso Livre.


-- Table: phpgw_log_msg -- Contém mais detalhes sobre os problemas registrados na tabela phpgw_log. Também não é utilizado pelo Expresso Livre.


-- Table: phpgw_news -- Contém os registros dos artigos publicados pelo módulo Boletins Internos (newsadmin)


-- Table: phpgw_news_export -- Contém informações dos links RSS disponíveis, para publicação dos artigos do módulo Boletins Internos (newsadmin).


-- Table: phpgw_nextid -- Contém o último UID/GID number utilizado na criação de objetos (usuários, grupos, listas) através do módulo ExpressoAdmin.


-- Table: phpgw_preferences -- Contém todas as preferências dos usuários, padrões e obrigatórias de todos os módulos do Expresso.


-- Table: phpgw_sessions -- Não é utilizada pelo Expresso, pois a sessão do usuário não fica armazenada no banco de dados.


-- Table: phpgw_vfs -- Contém informações utilizadas pelo módulo filemanager, e que só será utilizada no Expresso 2.2