Re: [PostgreSQL-Brasil] Migração de dados
Rodrigo Hjort rodrigo.hjort em gmail.comQuarta Janeiro 11 21:04:24 GMT 2006
- Mensagem anterior: Re: [PostgreSQL-Brasil] Migração de dados
- Próxima mensagem: Re: [PostgreSQL-Brasil] Migração de dados
- Mensagens classificadas por: [ date ] [ thread ] [ subject ] [ author ]
Precisei migrar uma base de dados em Access para PostgreSQL e para isso
criei um script em Shell, utilizando a biblioteca MDB-Tools para a extração
dos dados. Desse jeito, não precisei ter o desprazer de acessar uma máquina
no Windows! :D
Um arquivo de dump completo é gerado a partir do MDB, e então resta só
restaurá-lo no PostgreSQL.
#!/bin/bash
if [ $# -ne 1 ]; then
echo "Usage: dump-mdb <database_file.mdb>"
exit 1
fi
if [ $((`dpkg -L mdbtools | grep mdb-ver$ | wc -l`)) -eq 0 ]; then
echo "MDB Tools package not found!"
echo "Install it by running: \"apt-get install mdbtools*\""
exit 2
fi
db="$1"
arq="/tmp/$$"
mdb-ver $db 2> /dev/null &> /dev/null
if [ $? -ne 0 ]; then
echo "Error opening file $1!"
exit 4
fi
echo "--
-- PostgreSQL database dump
--
set datestyle to mdy;
"
for tab in `mdb-tables $db`; do
echo "--
-- Data for Name: $tab; Type: TABLE DATA
--
"
cols=`mdb-export $db $tab | head -1 | tr A-Z a-z | sed 's/,/, /g'`
if [ "$cols" != "" ]; then
echo "copy $tab ($cols) from stdin;"
mdb-export -H -Q -d "|" $db $tab > $arq.2 #| head -50 > $arq.2
#iconv -f UTF8 -t ISO88591 $arq.1 > $arq.2 #2> /dev/null
if [ $? ]; then
perl -n -e 's/\r\n/CR_LF/g;print;' $arq.2 > $arq.3
awk '{
gsub("^\\|", "\\N|") # começo
gsub("\\|$", "|\\N") # final
gsub("\\|\\|", "|\\N|") # passar 2 vezes
gsub("\\|\\|", "|\\N|")
gsub("CR_LF", "\\r\\n")
gsub("\t", "\\t")
gsub("\r", "\\r")
gsub("\\|", "\t")
gsub("\377\376", "") # defeito do mdb-export
}' $arq.3
fi
echo -e "\\.\n"
else
echo -e "-- $tab\n"
fi
done
echo "--
-- PostgreSQL database dump complete
--
"
2006/1/9, Márcia Regina da Silva Pimentel <mrsilvap em gmail.com>:
>
> Obrigada a todos pelas dicas.
> Valeu
>
>
> Em 09/01/06, Claudimir Zavalik <claudimir em apoenasoftwarelivre.com.br>
> escreveu:
> >
> > Peguem esta dica do nosso colega da lista, o Euler. Funcionou que é uma
> > maravilha.... ;)
> > []s
> > Claudimir.
> >
> >
> >
> > ----- Original Message ----- From: "Euler Taveira de Oliveira" <
> > eulerto em yahoo.com.br>
> > To: <Brasil-usuarios em pgfoundry.org>
> > Sent: Wednesday, October 26, 2005 10:11 PM
> > Subject: Re: [Brasil-usuarios] Ferramenta de conversão... .?=
> >
> >
> > >
> > > > alguém aqui conhece uma boa ferramenta para conversão de access para
> > > > postgres ?
> > > >
> > > Via ODBC.
> > >
> > > * Instale o driver ODBC para PostgreSQL.
> > > * Crie uma conexão.
> > > * Vá no Access e exporte utilizando o DSN (conexão) criado para o
> > PostgreSQL.
> > >
> > > Euler Taveira de Oliveira
> > > euler[at]yahoo_com_br
> >
> >
> > ----- Original Message -----
> > *From:* Mario Henrique Pinheiro Coelho <coelho.mario em gmail.com >
> > *To:* brasil-usuarios em pgfoundry.org
> > *Sent:* Monday, January 09, 2006 4:26 PM
> > *Subject:* Re: [PostgreSQL-Brasil] Migração de dados
> >
> >
> > Tem sim...
> >
> > Vc pode criar as mesmas tabelas e usar uma linguagem de programação para
> > a migrar...
> >
> > Att.
> >
> > Mario Coelho
> >
> > ----- Original Message -----
> > *From:* Márcia Regina da Silva Pimentel < mrsilvap em gmail.com>
> > *To:* brasil-usuarios em pgfoundry.org
> > *Sent:* Monday, January 09, 2006 3:23 PM
> > *Subject:* [PostgreSQL-Brasil] Migração de dados
> >
> >
> > Tenho dados no access, tem como migrá-los para o pg?
> > T+
> >
> > --
> > ---------------------------
> > Márcia Regina
> >
> >
--
Atenciosamente,
Rodrigo Hjort
GTI - Projeto PostgreSQL
CELEPAR - Cia de Informática do Paraná
http://www.pr.gov.br
_______________________________________________ Grupo de Usuários do PostgreSQL no Brasil http://www.postgresql.org.br
