PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Konversikan file dump SQLITE SQL ke POSTGRESQL

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Migrasi Rails:mencoba mengubah jenis kolom dari string menjadi integer

  2. Melakukan WHERE IN pada beberapa kolom di Postgresql

  3. Tips untuk Memantau PostgreSQL untuk Moodle

  4. Dapatkan jumlah yang berbeda dari kolom tabel yang digabungkan

  5. Nilai Kesalahan saat mengimpor data ke tabel postgres menggunakan psycopg2