Skip to main content
OpenClaw, denetim düzlemi durumunu genel bir SQLite veritabanında, agent verilerini ise agent başına bir SQLite veritabanında depolar. Şema geçişleri, bir veritabanı açıldığında ileri yönde çalıştırılır. Eski OpenClaw derlemeleri, daha yeni bir şema tarafından yazılmış veritabanlarını reddeder.

Veritabanı düzeni

Görev kaydı ve yörünge verileri dâhil olmak üzere yüksek hacimli veya yaşam döngüsüne özgü birkaç özellik, ayrılmış SQLite depoları kullanır.

Sürümleme sözleşmesi

Her veritabanı şemasını iki yerde kaydeder:
  • PRAGMA user_version, SQLite şema sürümüdür.
  • Birincil schema_meta satırı; role, agent_id, schema_version ve app_version değerlerini kaydeder. app_version, şema meta verilerini en son yazan OpenClaw derlemesidir.
OpenClaw, desteklenen eski bir veritabanını açarken yalnızca ileri yönlü geçişleri uygular. user_version değeri çalışan derlemeden daha yeni olan bir veritabanını reddeder ve newer schema version hatası bildirir. Gateway, başlatılmadan önce kayıtlı tüm veritabanlarını denetler. openclaw update ayrıca, bildirilen şema desteği diskteki bir veritabanından daha eski olan bir paketi veya kaynak hedefini reddeder. Şema meta verileri eklenmeden önce yayımlanan hedef paketlerde ön denetim yapılamaz. OpenClaw’u npm aracılığıyla elle yüklemek, güncelleyici korumasını atlar. Veritabanı açma denetimleri uyumsuz bir derlemeyi yine de reddeder.

Agent şema geçmişi

Sürüm 3, sürüm 4’e dâhil edilen, yayımlanmamış bir geliştirme adımıydı.

Durum şeması geçmişi

Bütünlük denetimleri

Gateway ön denetimi yalnızca şema üstbilgilerini okur. Geçiş gerektirmeyen veritabanlarının daha yavaş tam taramasından arka plan doğrulayıcısı sorumludur. Karantina kararları yalnızca ayrılmış bir openclaw-quarantine.sqlite deposunda tutulur; böylece karantinaya alınan veritabanları hasar görse bile korunur. Doğrulama sonuçları günlüğe kaydedilir.

Sorun giderme

2026.7.2 sürümüne güncelledikten sonra neden geri dönemezsiniz?

v2026.7.1 dâhil olmak üzere bu sürüme kadarki her sürüm, agent şeması 1’i ve durum şeması 1’i kullandı. 2026.7.2 sürüm serisi (v2026.7.2-beta.1 ile başlayarak), ilk başlatmada veritabanlarınızı ileri taşır. Bu geçiş tek yönlüdür: veriler daha yeni şemaya göre yeniden yazılır ve sonrasında daha eski bir OpenClaw yüklemek bu işlemi geri almaz. Eski derleme, veritabanının sahibi olan derlemeyi belirten bir newer schema version hatasıyla başlatmayı reddeder. İkili dosyanın sürümünü düşürmek, verilerin sürümünü hiçbir zaman düşürmez. Güncellemeden sonra 2026.7.2’den eski bir sürümü çalıştırmanız gerekiyorsa üç seçeneğiniz vardır:
  1. Güncellemeden önce alınmış bir yedeği geri yükleyin. Büyük güncellemelerden önce yedekleri oluşturun ve doğrulayın.
  2. Eski derlemeyi ayrı bir durum diziniyle (OPENCLAW_STATE_DIR) çalıştırın. Temiz bir başlangıç yapar; daha yeni derlemeye döndüğünüzde kullanabilmeniz için taşınmış verileriniz değiştirilmeden kalır.
  3. Aşağıdaki elle sürüm düşürme prosedürünü izleyin. Bu prosedür desteklenmez ve doğrulanmış bir yedek olmadan veri kaybı riski taşır.
2026.7.2’den itibaren openclaw update, mevcut veritabanlarınızı açamayan bir sürümü yüklemeyi reddeder; dolayısıyla güncelleyici sizi bu duruma sokmaz. Daha eski bir sürümü npm aracılığıyla elle yüklemek bu korumayı atlar; veritabanları eski ikili dosyayı yine reddeder, ancak bunu yalnızca dosya yüklendikten sonra yapar.

Gateway, daha yeni şema sürümü hatasıyla başlamayı reddediyor

Veritabanlarınızı daha yeni bir OpenClaw derlemesi yazmıştır ve çalışan derleme daha eskidir. Hata ve Gateway başlatma günlüğü, veritabanının sahibi olan derlemeyi (app_version) belirtir. Bu sürümü veya daha yenisini yükleyin ya da yukarıdaki seçeneklerden birini kullanın. Hatayı susturmak için veritabanını düzenlemeyin.

Bütünlük doğrulaması başarısız olduktan sonra bir veritabanı karantinaya alındı

Arka plan doğrulayıcısı dosyanın bozuk olduğunu kanıtlamıştır ve artık her açılışta yeniden tarama yapmak yerine işlem hızla başarısız olur. Veritabanını bir yedekten geri yükleyin veya onarın, ardından karantina kaydını temizlemek için openclaw doctor --fix komutunu çalıştırın. Karantina kaydının kendisi temizlenemiyorsa Doctor açık bir hata bildirir; temiz olduğunu bildirene kadar komutu yeniden çalıştırın.

Sürüm düşürmeler desteklenmez

Elle şema sürümü düşürme işlemleri, riski kabul eden agent’lar ve operatörler içindir. Herhangi bir veritabanını düzenlemeden önce bir yedek oluşturun ve doğrulayın. Gateway’i ve veritabanını açabilecek tüm işlemleri durdurun. Genel prosedür şöyledir:
  1. Hedef sürümün şemasını ve geçişlerini okuyun.
  2. Tek bir işlem içinde, hedef sürümden sonra eklenen tüm tabloları, dizinleri, tetikleyicileri ve sütunları kaldırın.
  3. PRAGMA user_version ve schema_meta.schema_version değerlerini hedef sürüme ayarlayın.
  4. Gateway’i başlatmadan önce hedef sürümün tam veritabanı doğrulamasını çalıştırın.

Örnek: agent şeması 11’den 9’a

Şema 10, etkin transkript izdüşümünü ekledi. Şema 11; kiralamaları, kalıcı teslimatı, konuşma adresi durumunu ve Heartbeat sonuçlarını ekledi. QMD koordinasyonu state_leases içindeki satırları kullanır; korunması gereken ayrı bir QMD tablosu yoktur. Tam olarak hangi şemanın yazdığını inceledikten sonra, etkilenen her agent başına veritabanında eşdeğer SQL’i çalıştırın:
Bu işlem; devam eden teslimat işlemleri, kiralamalar, Heartbeat sonuçları ve türetilmiş etkin transkript izdüşümü dâhil olmak üzere sürüm 10-11 durumunu atar. Hatalı bir sürüm düşürme durumunda doğrulanmış yedekten geri yükleyin.