---
title: "SQLite veritabanını başka bir sürüme taşıyın"
description: "Bir SQLite .db dosyasını veya dökümünü SQLite 3.31 ve sonrasında yüklenen bir betiğe dönüştürün; aynı tablolar, anahtarlar ve verilerle, her değişikliğin raporuyla."
canonical: https://intosql.com/tr/sqlite-sqlite-donusturme
last_updated: 2026-10-15
---

# SQLite veritabanını başka bir sürüme taşıyın

Bir SQLite veritabanı dosyasını (.db, .sqlite, .sqlite3) ya da sqlite3 .dump komutunun yazdığı SQL'i bırakın ve SQLite 3.31 ve sonrasında yüklenen bir betik indirin. Her sütun bildirilen türünü ve collation'ını korur, eski sürümler tabloları kabul etsin diye STRICT çıkarılır ve her değişiklik raporda listelenir.

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

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

## Dosya ile betik 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.

| Dosyada | Betikte | 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 | CHECK ile 0 veya 1 INTEGER |  |
| TEXT, VARCHAR(n), CHAR(n), CLOB | tanımlanan tür, olduğu gibi |  |
| DECIMAL(p,s), NUMERIC | her değer sığıyorsa tam tür, değilse double |  |
| BLOB, and columns holding bytes | BLOB |  |
| DATE, DATETIME, TIMESTAMP holding ISO 8601 text | ISO 8601 metni olarak DATE, DATETIME |  |
| JSON holding JSON text | TEXT |  |
| Infinity in REAL columns | 9e999, SQLite'ın kendi sonsuzluğu |  |
| INTEGER PRIMARY KEY, AUTOINCREMENT | INTEGER PRIMARY KEY, AUTOINCREMENT korunur |  |
| COLLATE NOCASE | COLLATE NOCASE |  |
| generated columns | üretilen sütunlar, kaynaktaki gibi STORED veya VIRTUAL |  |
| 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) | aynı yabancı anahtarlar, PRAGMA foreign_key_check ile listelenir |  |
| 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 | korunur |  |
| 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 SQLite 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
sqlite3 -bail mydb.sqlite < sqlite.sqlite.sql
```

Yabancı anahtarlar her tabloda tanımlanır ve satırlar yabancı anahtar denetimleri kapalıyken yüklenir. Betik ardından, yarı yolda başarısız olmak yerine, var olmayan bir satıra işaret eden her satırı listeler.

Büyük bir döküm için yerel bir diskte yeni bir dosyaya yükleyin. Betik her şeyi senkronizasyon kapalı tek bir işlemde yükler; böylece disk hızında çalışır ve yarı yolda duran bir yükleme yarım tablo bırakmaz.

Komut satırı dosyayı doğrudan bir SQLite veritabanına yükler; betik yazmanız gerekmez. Ücretsizdir.

## 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

SQLite kendi dilinde yazılmış görünümler, tetikleyiciler, yordamlar, fonksiyonlar ve diğer nesneler raporda adlarıyla listelenir, asla sessizce atlanmaz; böylece yeniden oluşturmadan önce her birini yüklediğiniz SQLite sürümüyle karşılaştırabilirsiniz.

## SQLite sürümleri arasında taşıma 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?

Her sütun tanımlanan türünü korur; COLLATE NOCASE ve RTRIM de öyle. STRICT dışarıda bırakılır, böylece betik 3.31'den itibaren her sürümde yüklenir.

### INTEGER PRIMARY KEY ve AUTOINCREMENT korunuyor mu?

Evet. INTEGER PRIMARY KEY ve AUTOINCREMENT olduğu gibi kalır ve sqlite_sequence, dökümün bıraktığı yerden devam eder.

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

Raporda adlarıyla listelenirler ve dönüştürülmezler; böylece tablolar yüklendikten sonra onları yeniden oluşturabilirsiniz.

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

SQLite 3.31 ve sonrası. Her test dosyası ve dökümü 3.31 ve 3.54 üzerinde yüklenir ve bir sorun çıkarsa ilk hatada durur.

## Kaynak: SQLite

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

## Hedef: SQLite

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

## Kılavuz ve tüm ikililer

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