Anda harus dapat memasukkan file dump itu langsung ke psql
:
/path/to/psql -d database -U username -W < /the/path/to/sqlite-dumpfile.sql
Jika Anda ingin id
kolom menjadi "auto increment" maka ubah jenisnya dari "int" menjadi "serial" di baris pembuatan tabel. PostgreSQL kemudian akan melampirkan urutan ke kolom itu sehingga INSERT dengan id NULL akan secara otomatis diberikan nilai berikutnya yang tersedia. PostgreSQL juga tidak akan mengenali AUTOINCREMENT
perintah, jadi ini perlu dihapus.
Anda juga ingin memeriksa datetime
kolom dalam skema SQLite dan mengubahnya menjadi timestamp
untuk PostgreSQL. (Terima kasih kepada Clay karena telah menunjukkan hal ini.)
Jika Anda memiliki boolean di SQLite, Anda dapat mengonversi 1
dan 0
menjadi 1::boolean
dan 0::boolean
(masing-masing) atau Anda dapat mengubah kolom boolean menjadi integer di bagian skema dump dan kemudian memperbaikinya secara manual di dalam PostgreSQL setelah impor.
Jika Anda memiliki BLOB di SQLite Anda, maka Anda harus menyesuaikan skema yang akan digunakan bytea
. Anda mungkin perlu menggabungkan beberapa decode
panggilan juga . Menulis mesin fotokopi quick'n'dirty dalam bahasa favorit Anda mungkin lebih mudah daripada merusak SQL jika Anda memiliki banyak BLOB yang harus ditangani.
Seperti biasa, jika Anda memiliki kunci asing maka Anda mungkin ingin melihat ke dalam set constraints all deferred
untuk menghindari memasukkan masalah pengurutan, menempatkan perintah di dalam pasangan BEGIN / COMMIT.
Terima kasih kepada Nicolas Riley untuk boolean, blob, dan catatan kendala.
Jika Anda memiliki `
kode Anda, seperti yang dibuat oleh beberapa klien SQLite3, Anda harus menghapusnya.
PostGRESQL juga tidak mengenali unsigned
kolom, jadi Anda mungkin ingin menghapusnya atau menambahkan batasan yang dibuat khusus seperti ini:
CREATE TABLE tablename (
...
unsigned_column_name integer CHECK (unsigned_column_name > 0)
);
Meskipun SQLite secara default ''
menetapkan nilai null menjadi , PostgreSQL mengharuskannya disetel sebagai NULL
.
Sintaks dalam file dump SQLite tampaknya sebagian besar kompatibel dengan PostgreSQL sehingga Anda dapat menambal beberapa hal dan memasukkannya ke dalamnya psql
. Mengimpor tumpukan besar data melalui SQL INSERT mungkin membutuhkan waktu beberapa saat tetapi itu akan berhasil.