Pages

PostgreSQL: Django Duplicate Key Error

9 Ocak 2016 Cumartesi

Bir projeyi django 1.6'dan 1.9'a çekmek durumunda kaldık. Projenin sürümü güncellerken bazı modelleri falan değiştirdik. Eski veritabanını yeni projeye ve yeni veritabanı sunucusuna taşıma işi bana kaldı bu durumda.

Eski sunucudaki veritabanında projenin yeni halindeki ortak olan tabloların dump'larını alıp gerekli düzenlemeleri yaptım ve yeni veritabanı sunucusundaki yeni proje veritabanına soktum(!).

İlişki tablolarını falan içeriye soktum, verileri çekebiliyor, listeleyebiliyorum fakat bu eski veritabanından içeriye veri soktuğum(!) tablolara insert yapamıyordum.

django.db.utils.IntegrityError: duplicate key value violates unique constraint "app_model_pkey"
DETAIL:  Key (id)=(156) already exists.
Hep bu hatayı alıyordum.

Postgresql'e pek aşina olmadığım için ve daha önce böyle bir veritabanı taşıma işi yapmadığım için sorunu uzun  bir süre çözemedim. En sonunda stackoverflow'dan girdim, postgresql'in, django'nun dökümantasyonundan çıktım, google'da iki takla, çıkan blog yazılarında bi şpagat derken güzel bir blog'a denk geldim.

Siz de benim gibi bir db taşıma işinden sonra böyle bir problemle karşılaştıysanız sorunuzun cevabını bu yazıda bulabilirsiniz.

Yukarıda belirttiğim şekil bir hata aldınız diyelim. Postgresql veritabanımıza bağlanıp şöyle bir sorgu çalıştıralım.

select max(id) from bahsi_gecen_tablo;
------
sonuç: 1759338

Şimdi aldığımız hata bahsi_gecen_tablo_pkey şeklindeydi ya, sequences bölümünde onu bulalım ve şöyle bir query daha çalıştıralım.

select start_value, last_value, max_value from bahsi_gecen_tablo_id_seq;
------
sonuç: start_value = 1, last_value=1, max_value=9223372036854775807
 last_value = 1!

Bir sonraki eklenecek kaydın id'si 1 olmaya çalışıyor, bu id'de daha önceden eklenmiş kaydınız olduğu için size böyle bir hata veriyor işte postgresql. Çözümü ise şu şekilde

alter sequence bahsi_gecen_tablo_pkey restart with 1759338; (bahsi geçen tablonun satır sayısı)
şeklinde bir sorgu çalıştırdığımız zaman sorunumuz çözülmüş oluyor.

Hiç yorum yok:

Yorum Gönder

 

Ara...

Etiketler

linux (8) ubuntu (8) backtrack (6) php (6) dinle (4) django (4) debian (3) indir (3) jquery (3) python (3) facebook (2) javascript (2) lyrics (2) mysql (2) müzik (2) postgresql (2) reggae (2) unix (2) windows 7 (2) youtube (2) 15 ocak (1) Here Comes The Rain Again (1) Hypnogaja (1) Hypnogaja - Here Comes The Rain Again (1) Knock Out Ft. Adrenalin - Eşşoğlueşşek (1) RnB (1) Senatör ft. Iskeltan - Cennet Cehennem (1) adele (1) adrenalin (1) ais (1) ais ezhel - rastalar baş kaldırmış (1) application center (1) asosyal (1) asosyaller için hayatta kalma rehberi (1) asosyallik (1) backtrack chrome yüklemek (1) backtrack ta tor browser (1) bad video card drivers (1) baş (1) blues (1) bob marley (1) boyutlandırma (1) candy crush (1) candy crush ekstra hamle hilesi (1) candy crush hile (1) centos (1) cheat engine (1) cheat engine kullanımı (1) chrome hiç bir siteye girmiyor çözümü (1) chrome ile gmail'e giremiyorum çözümü (1) chrome internete bağlanmıyor çözümü (1) crack (1) crontab (1) css (1) database designer (1) dbdsgnr (1) debian install mysql (1) deep web (1) default editör değiştirmek (1) django admin (1) django humanize (1) django ile tarihi gün önce şeklinde yazdırmak (1) django-admin hatası (1) django-admin not working (1) downgrade (1) download (1) duplicate key error postgres (1) duplicate key value violates unique constraint (1) düştü (1) e book (1) efektli geçiş (1) ekran çözünürlüğü (1) elastic search (1) elasticsearch (1) elasticsearch downgrade (1) elasticsearch upgrade (1) embed (1) ezhel (1) eşek (1) eşşoğlueşşek (1) facebook candy crush (1) facebook tarzı zaman yazdırma (1) facebook yeni özellik (1) flash bellek (1) flash belleğe ikon vermek (1) gnome-utils (1) google (1) google chrome (1) google chrome ile google giremiyorum (1) google eşek mi öldürdü (1) google maps (1) google street view (1) graph search (1) hard disc resize (1) hard disk boyutlandırmak (1) hata (1) hile (1) hiphop (1) html (1) humanize (1) iframe (1) ikinci ekran (1) image (1) install (1) iskeltan (1) izle (1) jamaika (1) jquery kayma efekti (1) kaldırmış (1) key (1) keygen (1) klip (1) knock out (1) konsol (1) kullanım (1) lenovo (1) linux in a nutshell (1) linux in a nutshell 6th edition (1) linux komutları (1) linux_in_a_nutshell_6th_edition (1) memcache (1) memcached (1) minecraft (1) multiple file rename (1) music (1) mv (1) nasıl kullanılır (1) nasıl kurulur (1) ne işe yarar (1) nedir (1) nvidia (1) odaklanma (1) online üyeler (1) online üyeleri görmek (1) parametreleri (1) password generator (1) php ile alfabe (1) php ile online üyeleri bulmak (1) php ile resim boyutlandırma (1) php natural time (1) php random password (1) php tarih yazdırma (1) php x saniye önce (1) php5 (1) random password (1) range (1) range fonksiyonu (1) range function (1) rap (1) rasgele şifre (1) rasta (1) rasta bakım (1) rasta fiyatları (1) rasta nasıl yapılır (1) rasta yaptırmak (1) rastafari (1) rastafarianizm (1) rastalar (1) remove (1) resim (1) resolution (1) reyhan karaca (1) roger s. pressman (1) sahte rasta yapımı (1) screen resulation (1) screenshot (1) second monitor (1) sed (1) senatör (1) serial (1) set fire to the rain (1) sevdik sevdalandık (1) shell (1) shorty wanna be a thug (1) software (1) software center (1) software engineering (1) sözleri (1) tanımlanamayan ağ sorunu (1) tooltip (1) toplu dosya ismi değiştirmek (1) toplu fotoğraf boyutlandırma (1) tor (1) tor browser (1) tor browser in backtrack (1) tupac (1) tütün (1) tütün nasıl sarılır (1) uninstall (1) upgrade (1) usb bellek (1) uygulama merkezi (1) varsayılan editör değiştirmek (1) vbox (1) veritabanına dışarıdan erişim (1) version compare (1) versiyon karşılaştırma (1) video (1) virtualbox (1) w7 (1) windows 7 crack (1) windows 7 keygen (1) xorg xserver reconfigure (1) yazılım mühendisliği (1) yazılım mühendisliği kitabı (1) youtube embed üzerine div getirmek (1) youtube mp3 indir (1) youtube video indir (1) çözüm (1) çözümü (1) öldü (1) şarkı (1)