คุณควรจะฟีดไฟล์ดัมพ์นั้นตรงไปที่psql:
/path/to/psql -d database -U username -W < /the/path/to/sqlite-dumpfile.sql
หากคุณต้องการให้idคอลัมน์เป็น "การเพิ่มอัตโนมัติ" ให้เปลี่ยนประเภทจาก "int" เป็น "อนุกรม" ในบรรทัดการสร้างตาราง จากนั้น PostgreSQL จะแนบลำดับไปยังคอลัมน์นั้นเพื่อให้ INSERTs ที่มี NULL ids ได้รับการกำหนดค่าที่พร้อมใช้งานถัดไปโดยอัตโนมัติ PostgreSQL จะไม่รู้จักAUTOINCREMENTคำสั่งดังนั้นจึงจำเป็นต้องลบออก
คุณจะต้องตรวจสอบdatetimeคอลัมน์ในสคีมา SQLite และเปลี่ยนเป็นtimestampสำหรับ PostgreSQL (ขอบคุณClay ที่ชี้ให้เห็นสิ่งนี้)
หากคุณมีบูลีนใน SQLite ของคุณคุณสามารถแปลง1และ0เป็น1::booleanและ0::boolean(ตามลำดับ) หรือคุณสามารถเปลี่ยนคอลัมน์บูลีนเป็นจำนวนเต็มในส่วนสคีมาของดัมพ์จากนั้นแก้ไขด้วยมือภายใน PostgreSQL หลังจากการนำเข้า
ถ้าคุณมี BLOBs ใน SQLite byteaของคุณแล้วคุณจะต้องการที่จะปรับสคีมากับการใช้งาน คุณอาจจะต้องผสมในบางสายเช่นกันdecode การเขียนเครื่องถ่ายเอกสาร Quick'n'dirty ในภาษาที่คุณชื่นชอบอาจจะง่ายกว่าการทำให้ SQL ยุ่งเหยิงหากคุณมี BLOB จำนวนมากที่ต้องจัดการ
ตามปกติหากคุณมีคีย์ต่างประเทศคุณอาจต้องการตรวจสอบset constraints all deferredเพื่อหลีกเลี่ยงปัญหาการแทรกการสั่งซื้อโดยวางคำสั่งไว้ในคู่ BEGIN / COMMIT
ขอบคุณNicolas Rileyสำหรับบันทึกบูลีนหยดและข้อ จำกัด
หากคุณมี`โค้ดของคุณซึ่งสร้างโดยไคลเอนต์ SQLite3 บางตัวคุณจำเป็นต้องลบออก
PostGRESQL ยังไม่รู้จักunsignedคอลัมน์ดังนั้นคุณอาจต้องการวางหรือเพิ่มข้อ จำกัด ที่กำหนดเองเช่นนี้:
CREATE TABLE tablename (
...
unsigned_column_name integer CHECK (unsigned_column_name > 0)
);
ในขณะที่ SQLite เริ่มต้นค่า null เป็น''PostgreSQL กำหนดให้ตั้งค่าเป็นNULL.
ไวยากรณ์ในแฟ้มการถ่ายโอนข้อมูล SQLite ดูเหมือนจะเข้ากันได้ส่วนใหญ่กับ PostgreSQL เพื่อให้คุณสามารถแก้ไขเล็ก ๆ น้อย ๆ psqlและอาหารมัน การนำเข้าข้อมูลจำนวนมากผ่าน SQL INSERTs อาจใช้เวลาสักครู่ แต่จะได้ผล