
Estou fazendo um sistema de gestão para uma instituição de caridade, e dentre as tarefas vou migrar um sistema desenvolvido em Clipper para o sistema que estou desenvolvendo em PHP/MySQL.
Bem a primeira coisa que necessitava era converter as bases de dados DBF para Mysql, fui direto no PHPClasses [1], de primeira encontrei essa interessante classe dbf2mysql [2].
Muito tri, só que tem um porém. No Ubuntu, o PHP não vem com suporte ao dbase, então seria necessário compilar a extensão.
Abaixo segue a receita do bolo para quem por ventura vier a precisar.
Primeiramente baixe o fonte do PHP e salve em algum diretório.
Tu vai precisar ter instalado o pacote de desenvolvimento:
sudo apt-get install php5-dev
Feito isso, precisamos do fonte da extensão dbase, pois ele foi removido do PHP 5.3+.
Navegue até o diretório /ext do código fonte que tu baixou do PHP e crie um diretório para o código fonte da extensão:
mkdir dbase
Agora baixe o fonte através do svn:
svn co http://svn.php.net/repository/pecl/dbase/trunk dbase
Entre no diretório dbase:
cd dbase
Execute o comando:
phpize
Execute o comando:
./configure
Espere terminar o processo e execute o comando make:
make
Agora copie a extensão para o diretório /usr/lib/php5/20090626+lfs/
sudo cp modules/dbase.so /usr/lib/php5/20090626+lfs/
(PHP 5.3.2)
Abra o php.ini
sudo gedit /etc/php5/apache2/php.ini
E insira a seguinte linha:
extension=dbase.so
Salve e feche o arquivo, agora reinicie o apache:
sudo /etc/init.d/apache2 restart
Agora seu PHP já tem suporte a bases DBF.
Bueno, o uso da classe dbf2mysql é bem simples, segue um exemplo abaixo:
//inclui a classe dbf2mysql include 'dbf2mysql'; //abre o arquivo DBF $filename = "ARQUIVO.DBF"; //exibe o resultado do sql na tela dbf2mysql::mostrarSQL($filename);
A partir daqui é só automatizar o trabalho, como por exemplo lêr todos os arquivos DBF e já fazer a inserção no banco de dados.
A base desse artigo foi tirada do zenware [3]
[1] PHPClasses
[2] dbf2mysql
[3] Zenware
Relsi,
já tentou o dbfsak? http://dbfsak.sourceforge.net/
é simples e muito rápido.
Muito boa a dica Alexandre. Vou dar uma olhada sim, valeu!