ダーク/ライト切り替え

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

投稿日2022-05-28

Picture of the logo


目次

目次を読み込み中...

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のバックアップをする方は参考にしてみて下さい。






関連記事

【備忘録】2023年版Djangoのstatic保存先をAWS S3にする

blog

Djangoの静的ファイルをS3に保存する手順。2023年1月にAWSに仕様変更が入り、追加の手続きが必要になったので、個人的備忘録を兼ねて書き残しておきます。

Django Rest FrameworkでTaggitによるフィルタリングを最速で実装する

blog

このブログサイトにも利用しています。Django Restに特化した解説が見つからなかったので備忘録も兼ねて書き残しておきます。

Djangoフレームワークで国別アクセス制限を実装する方法

blog

サーバーを運用していると、特定の国からのアクセスを制限したいと思うことはありませんか?例えば、セキュリティの理由や、ビジネスの対象地域を限定したい場合などです。Djangoを使っている場合、簡単に特定の国からのアクセスを制限できる方法があります。この記事では、Djangoで国別アクセス制限を実装する方法を紹介します。

Django Restを使って管理しているブログにアクセスカウンタを秒で設置する【初心者】

blog

ブログのバックエンドにDjango Restを使い、ページビューのたびに1ずつ増えるカウンタを作る方法を備忘録も兼ねて書き残しておきます。

【Python】最強のパスワードの作り方わかったw【超初心者向け】

blog

pythonの標準モジュールでUUIDというモジュールを使うと簡単に強度な乱数を生成できます。32桁の16進数とそれを4つの-(ハイフン)で区切られた合計36文字の文字列をランダムで生成します。これだけで2^128とおりのパターンがあるので一意の固有の識別番号と言っても過言ではないでしょう。今回はそれを2つ並べます。

【初心者】Pythonで大量の文字列の重複チェックをする方法【備忘録】

blog

Pythonで文字列の配列、リストから重複の有無をチェックする簡単な方法を紹介します

【python】Youtube動画を自分のパソコンにダウンロードして保存する方法

blog

YouTube動画をローカルPCにダウンロードするプログラムの自作方法を紹介します。

【python】2枚の画像の違いを検出する方法【初心者】

blog

個人的に2つの画像を比較して違いを見分けるアプリが欲しかったので作ってみました。同様のものは既に多数あるかと思いますが初心者でも簡単に作れるので紹介します。

【Python】英語から日本語への翻訳と音声出力【初心者】

blog

Pythonを利用した英語翻訳と日本語読み上げを簡単に実装する方法を紹介します。

Node.jsプロジェクトを本番環境にデプロイする時の備忘録【初学者向け】

blog

本番環境へのデプロイは、開発環境とは異なる考慮が必要です。特に依存関係の管理、ビルドプロセス、セキュリティの観点から慎重な準備が求められます。本記事では、個人的な備忘録を兼ねてNode.jsプロジェクトのデプロイ時に知っておくべき重要なポイントについて解説します。


スポンサーリンク

このサイトをシェアする