Você deve ser capaz de alimentar esse arquivo de despejo diretamente em psql:
/path/to/psql -d database -U username -W < /the/path/to/sqlite-dumpfile.sql
Se você quiser que a idcoluna tenha um "incremento automático", altere seu tipo de "int" para "serial" na linha de criação da tabela. O PostgreSQL irá então anexar uma sequência àquela coluna para que INSERTs com ids NULL sejam automaticamente atribuídos ao próximo valor disponível. O PostgreSQL também não reconhecerá os AUTOINCREMENTcomandos, portanto, eles precisam ser removidos.
Você também vai querer verificar as datetimecolunas no esquema SQLite e alterá-las timestamppara PostgreSQL (obrigado a Clay por apontar isso).
Se você tiver booleanos em seu SQLite, poderá converter 1e 0e 1::booleane 0::boolean(respectivamente) ou alterar a coluna booleana para um inteiro na seção de esquema do dump e corrigi-los manualmente dentro do PostgreSQL após a importação.
Se você tiver BLOBs em seu SQLite, você desejará ajustar o esquema a ser usado bytea. Provavelmente, você também precisará misturar algumas decodechamadas . Escrever uma copiadora rápida e suja em sua linguagem favorita pode ser mais fácil do que mutilar o SQL se você tiver muitos BLOBs para lidar.
Como de costume, se você tiver chaves estrangeiras, provavelmente desejará set constraints all deferredevitar problemas de ordem de inserção, colocando o comando dentro do par BEGIN / COMMIT.
Agradecimentos a Nicolas Riley pelas notas booleanas, de bolhas e de restrições.
Se você tiver `em seu código, conforme gerado por alguns clientes SQLite3, será necessário removê-los.
PostGRESQL também não reconhece unsignedcolunas, você pode querer descartar isso ou adicionar uma restrição feita sob medida, como esta:
CREATE TABLE tablename (
...
unsigned_column_name integer CHECK (unsigned_column_name > 0)
);
Embora o padrão do SQLite para valores nulos '', o PostgreSQL requer que eles sejam configurados como NULL.
A sintaxe no arquivo de despejo SQLite parece ser compatível com o PostgreSQL, portanto, você pode corrigir algumas coisas e alimentá-lo psql. A importação de uma grande pilha de dados por meio de SQL INSERTs pode demorar um pouco, mas funcionará.