ダーク/ライト切り替え

Django4にdjango-dbbackupでAWS S3を保存先にしたらハマったので・・・

投稿日 2022-05-28T20:51:44+09:00

Django4にdjango-dbbackupでAWS S3を保存先にしたらハマったので・・・

目次

目次を読み込み中...

djangoフレームワークでデータベースのバックアップにdjango-dbbackupを使う人は多いと思いますが、Djangoバージョン4などの比較的新しいバージョンにdjango-dbbackupやbotoをインストールした場合、そのままでは動かない可能性が高いので解決法を書き残しておきます。

前提条件

人によって異なるとは思いますが、この記事を書いた現在の環境

  • python 3.10.4
  • Django 4.0.4
  • django-dbbackup 3.3.0
  • django-storages 1.12.3
  • boto3 1.23.9
  • celery 5.2.6

apps.pyのugettext_lazyをgettext_lazyにする

まず最初に詰まったのは

でした。これはコチラの記事がそのまま当てはまったので参考にしました。

\Lib\site-packages\dbbackup\apps.pyの先頭のimport文を書き換えるだけ。

最初のエラーはひとまずこれで解決しました。

boto3をインストールする

次に出たエラーは次のものでした。

botoではダメだ

botoは入れたはずなので調べてみると

インストールされているけど、エラーログをよく見ると

さらにこちらのサイトを見てみると、どうやらbotoではなくboto3というのが必要なようだ。最初に参考にしたサイトが古かったみたいです。

しかしpip install boto3とやってもモジュールが見つからないと言われる。この解決法は簡単でpip3 install boto3でようやくインストールされた。

settings.pyを書き換える

下記のように書き換えればOK。

これで実行してみたところ

AWS S3側にもしっかり保存されていました。celeryによる定期バックアップはまだ試してませんが、ひとまずここまでを書き残しておきます。djangoで初めてDBのバックアップをする方は参考にしてみて下さい。


準備中

このサイトをシェアする