2011-08-09 29 views
13

sqlite3 kullanarak basit bir django uygulaması geliştirdim. İlk başta, sqlite3 kullanarak basit tutmak istedim, ama şeyler büyütmeye başlıyor (Evet, ben gerçekten bu uygulamayı sqlite3 ile kullanmaya başladım! Utanç bana ...) bu yüzden tüm verilerimi postgresql veritabanına taşımak istiyorum.Veritabanı kullanımda django diğer veritabanına nasıl kopyalanır?

django veya başka bir üçüncü taraf bu tür özelliği sağlamak mu, yoksa

+0

Olası yinelenen: "anahtar değerini çoğaltmak benzersiz kısıtlamayı ihlal: Bütünlük hatası: http://stackoverflow.com/questions/4581727/convert-sqlite-sql-dump-file-to-postgresql –

cevap

2

ama Bağımlılıkları çözmede temel olarak ticket 16317 ile aynı sorunla karşılaşıyorum. Ama benim için yeterli ...

Sorun Giderme Bu, kullanıcı arabiriminden dökümler oluşturup veri yüklemenizi sağlayan django-smuggler için bir bağlantı bulmamı sağladı.

Gerekli tüm veri aktarımı için umut verici görünüyor veya bir yedekleme yardımcı programı olarak kullanmak için.

25

Öncelikle

manage.py dumpdata > out.json 

, sonra DB yapılandırma değiştirmek göç yürütmek ... kendi aptallık için acı (veya syncdb gerekir) ve son olarak 1.11 daha eski Django varsa,

01 kullanmaya gerek
echo "delete from auth_permission; delete from django_content_type;" | python manage.py dbshell 

(

)

Sonra JSON dosyasını yüklemek:

manage.py loaddata out.json 

(2013 django_contenttype itibariyle django_content_type ile değiştirilir) Şu anda aynı kesin bir şey yapmaya çalışıyorum

+0

Böyle bir hata olsun django_content_type_app_label_model_key " DETAY: KEY (app_label, model) = (yönetici, logentry) zaten var – yasar

+1

db değiştirdiniz mi? Verilerinizi döktüğünüzde, sahip olduğunuz tabloları silebilir, şemayı güncelleyebilir, syncdb çalıştırabilir (tablolar yeniden oluşturulabilir) ve tekrar yükleme verilerini (şemadan bazı sütunları sildiyseniz, json dosyasından silmeniz gerektiğini unutmayın) çok). "Manage.py sqlreset appname" yi çalıştırdığınızda uygulamayı sıfırlamak için gereken tabloları ve sorguları görebilirsiniz. Ve ayrıca, - dent = 4 dumpdata komutu ile yardımcı olacaktır;) –

+0

btw - http://stackoverflow.com/questions/5739880/django-update-database-schema-without-loosing-data yardımcı olabilir .. –