---
title: "SQLite - PostgreSQL taşıma, tarayıcınızda"
description: "Bir SQLite veritabanını PostgreSQL hedefine taşıyın: .db dosyasını veya dökümünü aynı tablolar, anahtarlar ve verilerle bir betiğe dönüştürün, raporuyla."
canonical: https://intosql.com/tr/sqlite-postgresql-donusturme
last_updated: 2026-10-15
---

# SQLite - PostgreSQL taşıma, tarayıcınızda

Bir SQLite veritabanı dosyasını (.db, .sqlite, .sqlite3) veya sqlite3'ün .dump komutunun yazdığı SQL'i bırakın ve aynı tablolar, anahtarlar, indeksler ve verilerle bir PostgreSQL betiği indirin. Her sütun, değerlerinin sığdığı türü alır ve PostgreSQL'in olduğu gibi tutamadığı her değer raporda listelenir.

[SQLite - PostgreSQL taşıma kılavuzu](https://intosql.com/docs/migrations/sqlite-to-postgresql)

[SQLite - PostgreSQL veri türleri](https://intosql.com/docs/types/sqlite-to-postgresql)

## SQLite ile PostgreSQL arasında neler değişir

Her satır, dönüştürücünün uyguladığı bir kuraldır; yanında, kural verilerinizde bir şeyi değiştirdiğinde yazılan rapor satırı yer alır.

| SQLite içinde | PostgreSQL içinde | Rapor satırı |
| --- | --- | --- |
| declared types (any text: VARCHAR(255), DATETIME, BOOLEAN, JSON or none) | sütundaki her değerin sığdığı tür |  |
| BOOLEAN, BOOL | boolean |  |
| TEXT, VARCHAR(n), CHAR(n), CLOB | her değer tanımlanan uzunluğa sığıyorsa varchar(n), değilse text |  |
| DECIMAL(p,s), NUMERIC | her değer sığıyorsa tam tür, değilse double |  |
| BLOB, and columns holding bytes | bytea |  |
| DATE, DATETIME, TIMESTAMP holding ISO 8601 text | date, timestamp |  |
| JSON holding JSON text | jsonb |  |
| Infinity in REAL columns | PostgreSQL'in double türünün koruduğu Infinity |  |
| INTEGER PRIMARY KEY, AUTOINCREMENT | en yüksek id'den veya sqlite_sequence değerinden sonra devam eden GENERATED BY DEFAULT AS IDENTITY |  |
| COLLATE NOCASE | tam karşılaştırma | `case_insensitive_collation` |
| generated columns | STORED | `virtual_as_stored` |
| generated columns with functions IntoSQL doesn't write, and the || operator | düz bir sütun | `generated_not_translated` |
| defaults with functions IntoSQL doesn't write (strftime, randomblob) | varsayılan değer yok | `default_not_translated` |
| CHECK constraints | çevrilir |  |
| CHECK constraints with functions IntoSQL doesn't write | oluşturulmaz | `check_skipped` |
| partial and expression indexes | oluşturulmaz | `index_skipped` |
| foreign keys (unenforced unless PRAGMA foreign_keys=ON) | yabancı anahtarlar, NOT VALID, ardından doğrulanır |  |
| foreign keys to tables the dump doesn't create | oluşturulmaz | `foreign_key_skipped` |
| primary keys holding NULL, and NOT NULL columns with values that become NULL | NOT NULL kaldırılır | `not_null_relaxed` |
| views, triggers and virtual tables (FTS, R*Tree) | raporda listelenir | `not_converted_objects` |
| dumps without CREATE TABLE (--data-only) | değerlerden okunan türler | `no_schema` |
| expressions in INSERT values other than the text functions dumps write | NULL | `expression_value` |
| NUL characters in text | kaldırılır | `nul_removed` |
| text that isn't valid UTF-8 | hatalı baytlar yerine koyma karakteri olarak | `invalid_utf8_replaced` |
| text decoded twice (Ã±) | olduğu gibi kopyalanır | `mojibake_suspected` |

## Betiği PostgreSQL veritabanına yükleyin

Betik tabloları oluşturur, satırları kopyalar, ardından anahtarları, indeksleri ve yabancı anahtarları ekler; böylece hızlı yüklenir ve ilk hatada durur.

```shell
psql -v ON_ERROR_STOP=1 -d mydb -f sqlite.postgresql.sql
```

Yabancı anahtarlar NOT VALID olarak eklenir ve ardından doğrulanır. Bir satır var olmayan bir satıra işaret ediyorsa betik, yarı yolda başarısız olmak yerine hangi kısıtın sorunlu olduğunu söyler.

Büyük bir döküm için önce veritabanını oluşturun ve betiği sunucuyla aynı makinede psql ile çalıştırın.

IntoSQL Pro, dosyayı masaüstü uygulamasından veya komut satırından doğrudan PostgreSQL veritabanına yükler; betik yazmanız gerekmez.

## En iyi sonuç için SQLite dökümü nasıl alınır

Dönüştürücü, dökümün içerdiğini okur. Bu seçenekler verilerinizin daha fazlasını dökümde tutar:

- Veritabanı dosyasının kendisi olduğu gibi dönüştürülür ve tarayıcınızda sayfa sayfa okunur. Hiçbir değişiklik -wal dosyasında kalmasın diye önce ona yazan uygulamayı kapatın.
- sqlite3 app.db .dump > app.sql aynı veritabanını SQL olarak yazar; bu da .sql veya .sql.gz olarak dönüştürülür.
- DB Browser for SQLite bu SQL'i File, Export, Database to SQL file ile yazar; Python'ın iterdump() fonksiyonu da öyle.

## Neler dönüştürülmez

Görünümler ve tetikleyiciler SQLite'in kendi dilinde yazılır. Raporda adlarıyla listelenirler, asla sessizce atlanmazlar; böylece onları PostgreSQL için yeniden yazabilirsiniz. FTS5 ve R*Tree gibi sanal tablolar da listelenir ve bunların gölge tabloları dışarıda bırakılır.

## SQLite - PostgreSQL dönüştürme hakkında sorular

### Dökümüm yükleniyor mu?

Hayır. Dönüştürücü tarayıcınızda çalışır ve dökümü diskinizden parça parça okur; böylece döküm bilgisayarınızdan hiç çıkmaz. Masaüstü uygulaması ve komut satırı da bilgisayarınızda dönüştürür.

### Döküm ne kadar büyük olabilir?

Dönüştürücü dökümün tamamını asla bellekte tutmaz: dosyayı aralıklar halinde iki kez okur ve betiği ilerledikçe yazar. Birkaç gigabaytlık dökümler tarayıcıda, masaüstü uygulamasında ve komut satırıyla dönüştürülür.

### .db dosyasının kendisini dönüştürebilir miyim?

Evet. .db, .sqlite veya .sqlite3 dosyasını bırakın: tarayıcınızda okunur ve asla yüklenmez. NUL karakterli metinler ve bir double değerin her basamağı saklandığı gibi gelir; bir .dump bunları kesebilir.

### Döküm hangi SQLite sürümlerinden gelebilir?

SQLite 3.0 ve sonrasından UTF-8 veya UTF-16 veritabanı dosyaları ile sqlite3 kabuğunun .dump komutundan veya Python'ın iterdump() fonksiyonundan alınan dökümler. Her test dosyası ve dökümü, STRICT ve WITHOUT ROWID tabloları dahil, sqlite3 3.31 ile 3.54 arasından gelir ve kaynağıyla hücre hücre karşılaştırılır.

### SQLite sütun türlerini zorunlu tutmadığında türler nasıl belirlenir?

Tanımlanan tür bir ipucudur, kararı değerler verir: her değer sığıyorsa sütun integer, numeric, double precision, date, timestamp, boolean, bytea veya text olur. Karışık değerler içeren bir sütun bunların metnini korur ve rapor hangi sütunlar olduğunu söyler.

### INTEGER PRIMARY KEY ve AUTOINCREMENT korunuyor mu?

Evet. INTEGER PRIMARY KEY bir kimlik sütunu olur, her satır kendi id'sini korur ve sonraki id en yüksek id'den sonra, AUTOINCREMENT varsa sqlite_sequence değerinden sonra devam eder.

### Görünümler ve tetikleyiciler ne olur?

Raporda adlarıyla listelenirler ve dönüştürülmezler, çünkü her veritabanı onları kendi dilinde yazar.

### Betik hangi PostgreSQL sürümlerinde yüklenir?

PostgreSQL 13 ile 18 arası. Aynı betik her birinde yüklenir ve bir sorun çıkarsa ilk hatada durur.

## Kaynak: SQLite

- [SQLite - MySQL](https://intosql.com/tr/sqlite-mysql-donusturme)
- [SQLite - MariaDB](https://intosql.com/tr/sqlite-mariadb-donusturme)
- [SQLite - SQLite](https://intosql.com/tr/sqlite-sqlite-donusturme)
- [SQLite - SQL Server](https://intosql.com/tr/sqlite-sql-server-donusturme)
- [SQLite - Oracle](https://intosql.com/tr/sqlite-oracle-donusturme)

## Hedef: PostgreSQL

- [MySQL - PostgreSQL](https://intosql.com/tr/mysql-postgresql-donusturme)
- [MariaDB - PostgreSQL](https://intosql.com/tr/mariadb-postgresql-donusturme)
- [PostgreSQL - PostgreSQL](https://intosql.com/tr/postgresql-postgresql-donusturme)
- [SQL Server - PostgreSQL](https://intosql.com/tr/sql-server-postgresql-donusturme)
- [Oracle - PostgreSQL](https://intosql.com/tr/oracle-postgresql-donusturme)

## Kılavuz ve tüm ikililer

- [PostgreSQL - SQLite](https://intosql.com/tr/postgresql-sqlite-donusturme)
- [SQLite - PostgreSQL taşıma kılavuzu](https://intosql.com/docs/migrations/sqlite-to-postgresql)
- [SQLite - PostgreSQL veri türleri](https://intosql.com/docs/types/sqlite-to-postgresql)
- [Tüm veritabanı ikilileri](https://intosql.com/tr/veritabani-tasima)
