Bu döküm dosyasını doğrudan şuraya besleyebilmelisiniz psql:
/path/to/psql -d database -U username -W < /the/path/to/sqlite-dumpfile.sql
idSütunun "otomatik artış" yapmasını istiyorsanız , tablo oluşturma satırında türünü "int" yerine "seri" olarak değiştirin. PostgreSQL daha sonra bu sütuna bir sıra ekleyecektir, böylece NULL kimlikli INSERT'lere bir sonraki kullanılabilir değer otomatik olarak atanır. PostgreSQL de AUTOINCREMENTkomutları tanımayacağından bunların kaldırılması gerekir.
Ayrıca datetimeSQLite şemasındaki sütunları kontrol etmek ve bunları timestampPostgreSQL için değiştirmek isteyeceksiniz . ( Bunu işaret ettiği için Clay'e teşekkürler .)
Eğer SQLite'ta Boolean varsa o zaman dönüştürebilirsiniz 1ve 0karşı 1::booleanve 0::boolean(sırasıyla) veya dökümü şema bölümünde bir tam sayıya boole sütun değiştirin ve sonra aktarılmasından sonra PostgreSQL içindeki elle onları düzeltmek.
SQLite'ınızda BLOB'lar varsa, kullanılacak şemayı ayarlamak isteyeceksiniz bytea. Muhtemelen bazı decodearamaları da karıştırmanız gerekecek . En sevdiğiniz dilde bir quick'n'dirty kopyalayıcı yazmak, uğraşmanız gereken çok sayıda BLOB varsa, SQL'i karıştırmaktan daha kolay olabilir.
Her zaman olduğu gibi, yabancı anahtarlarınız varsa, muhtemelen set constraints all deferredBEGIN / COMMIT çiftinin içine komutu yerleştirerek sipariş sorunları eklemekten kaçınmak isteyeceksiniz .
Boolean, blob ve kısıtlama notları için Nicolas Riley'ye teşekkürler .
Eğer varsa `kodunuzda bazı SQLite3 istemcileri tarafından oluşturulan, bunları kaldırmak gerekir.
PostGRESQL ayrıca unsignedsütunları da tanımaz , bu nedenle bunu kaldırmak veya şunun gibi özel yapılmış bir kısıtlama eklemek isteyebilirsiniz:
CREATE TABLE tablename (
...
unsigned_column_name integer CHECK (unsigned_column_name > 0)
);
SQLite varsayılan olarak null değerleri ''olarak ayarlasa da, PostgreSQL bunların NULL.
SQLite döküm dosyasındaki sözdizimi çoğunlukla PostgreSQL ile uyumlu görünmektedir, bu nedenle birkaç şeyi yamalayıp onu besleyebilirsiniz psql. SQL INSERT'ler aracılığıyla büyük miktarda veriyi içe aktarmak biraz zaman alabilir ama işe yarayacaktır.