Anda seharusnya dapat memasukkan file dump itu langsung ke psql
:
/path/to/psql -d database -U username -W < /the/path/to/sqlite-dumpfile.sql
Jika Anda menginginkan id
kolom menjadi "kenaikan otomatis" lalu 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 diberi nilai yang tersedia berikutnya. PostgreSQL juga tidak akan mengenali AUTOINCREMENT
perintah, jadi ini harus dihapus.
Anda juga ingin memeriksa datetime
kolom dalam skema SQLite dan ubah ke timestamp
untuk PostgreSQL. (Terima kasih kepada Clay karena telah menunjukkan hal ini.)
Jika Anda memiliki boolean di SQLite Anda, maka Anda dapat mengonversi 1
dan 0
ke 1::boolean
dan 0::boolean
(masing-masing) atau Anda dapat mengubah kolom boolean menjadi bilangan bulat di bagian skema dump dan kemudian memperbaikinya dengan tangan di dalam PostgreSQL setelah impor.
Jika Anda memiliki Gumpalan di SQLite Anda, maka Anda ingin menyesuaikan skema untuk menggunakan bytea
. Anda mungkin perlu mencampurkan beberapa decode
panggilan juga. Menulis mesin fotokopi cepat dalam bahasa favorit Anda mungkin lebih mudah daripada mengotak-atik SQL jika Anda memiliki banyak Gumpalan yang harus ditangani.
Seperti biasa, jika Anda memiliki kunci asing maka Anda mungkin ingin melihat set constraints all deferred
untuk menghindari masalah urutan penyisipan, letakkan perintah di dalam pasangan BEGIN/COMMIT.
Terima kasih kepada Nicolas Riley untuk catatan boolean, blob, dan constraint.
Jika Anda memiliki `
pada 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)
);
Sementara SQLite default nilai nol ke ''
, PostgreSQL mengharuskan mereka untuk ditetapkan sebagai NULL
.
Sintaks dalam file dump SQLite tampaknya sebagian besar kompatibel dengan PostgreSQL sehingga Anda dapat menambal beberapa hal dan memasukkannya ke psql
. Mengimpor setumpuk besar data melalui SQL INSERT mungkin memakan waktu cukup lama, tetapi itu akan berhasil.