コマンドラインからDBのバックアップとレストア
manage.pyで
manage.pyを用いると簡単に行える。
ただしバックアップ時のDBレイアウトとレストア時のそれが異なると
バックアップデータのレストア時にエラーが発生する場合があるので注意が必要。
レストア時に実行するDMLでエラーが発生するような制約や不整合
(NOT NULL制約、削除されたカラムへのデータ追加)がそれにあたる。
バックアップ
manage.py dumpdata **** > 20130101.json
レストア
manage.py loaddata **** 20130101.json
「****」にはバックアップ対象のデータModelを持つアプリケーションを指定する。
リダイレクトするファイル名は適当でいいが、拡張子はjsonにしておくこと。
バックアップテーブルを用いて
DDL変更時にデータを維持するためにだけ、DDLを本来の意図とは外れた作りに、
つまり汚してしまうこと
(レストアエラー回避のためにNOT NULLにDEFAULTを指定するなど)が嫌な人は、
バックアップテーブルを作成し、INSERT ~ SELECT ~ の形式でSQLを用いるのが手っ取り早い。
この辺は、DBMSによって差異があるのでSQLは書かない。
マスタデータの初期データ
マスタデータのバックアップ目的の保持で、一番良いと思われる方法は、CUSTOM SQLを作成しておくこと。
プロジェクト > (アプリケーション名) > sql ディレクトリを作成し、
SQLファイルを作って入れておくとsyncdb時に実行してくれる。
ファイル名は[モデル名のLowerケース].sql
最終更新:2013年01月19日 11:44