wiki:Servicos/Postgres

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