2011-08-09 27 views
13

私はsqlite3を使って簡単なdjangoアプリケーションを開発しました。最初は、sqlite3を使用して簡単に保ちたいと思っていましたが、事実は拡大し始めています(私は実際にそのアプリケーションをsqlite3で使い始めました!私は恥でした...)ので、すべてのデータをpostgresqlデータベースに移行します。使用中のデータベースをdjangoの他のデータベースにコピーする方法は?

は、Djangoにないか、他のサードパーティは、このような機能を提供し、または私は自分の愚かさのために苦しむ必要があります...

+0

可能な複製:http://stackoverflow.com/questions/4581727/convert-sqlite-sql-dump-file-to-postgresql –

答えて

2

を、私基本的にはticket 16317と同じ依存関係を解決する問題が発生しています。しかし、私については十分です...

トラブルシューティングこれにより、django-smugglerへのリンクが見つかりました。これにより、管理インターフェイスからダンプを作成し、データを読み込むことができます。

これは、必要なデータ転送やバックアップユーティリティとしての使用に有望です。

25

まず、そして、あなたのDBの設定を変更する移行(またはsyncdbの実行

manage.py dumpdata > out.json 

を実行します)そして最後に、あなたが1.11より古いジャンゴを持っている場合は、あなたが

01を使用する必要が
echo "delete from auth_permission; delete from django_content_type;" | python manage.py dbshell 

は、次にJSONファイルをロードします。

manage.py loaddata out.json 

(2013 django_contenttypeのようdjango_content_typeに置き換えられます)私は今、まったく同じことを行うにしようとしています

+0

エラーが発生しました:整合性エラー:重複キー値が一意制約に違反しています " django_content_type_app_label_model_key " 詳細:KEY(app_label、model)=(admin、logentry)はすでに存在しています – yasar

+1

dbを変更しましたか?データをダンプするときは、単にテーブルを削除し、スキーマを更新し、syncdb(テーブルが再作成されます)とロードデータを再度実行します(スキーマからいくつかのカラムを削除した場合、jsonファイルから削除する必要がありますあまりにも)。 「manage.py sqlreset appname」を実行したときに、アプリケーションをリセットするために必要なテーブルとクエリが表示されます。また、--indent = 4はdumpdataコマンドの助けになります; –

+0

btw - http://stackoverflow.com/questions/5739880/django-update-database-schema-without-loosing-data役に立つかもしれません.. –

関連する問題