0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SQLiteからPostgreSQLへ移行した【SmartMemo開発記録⑬】

0
Last updated at Posted at 2026-09-14

はじめに

次に移る前にデータベースをSQLiteからPostgreSQLへ移行しました。
SmartMemoは、Markdownや数式、Pythonコードの実行などに対応したメモアプリです。

今回は、今後の公開も見据えて、データベースをSQLiteからPostgreSQLへ変更しました。

PostgreSQLを導入

まず、PostgreSQL 18をインストールし、PostgreSQLのDBを作成し、Djangoから接続できるように設定しました。

DjangoのDB設定の変更

これまでSQLiteを使用していましたが、本格的にアプリを作りたいと思いがあったので、サーバー設定やアクセス権限管理など高度な管理が可能なPostgreSQLへ変更してみました。

DATABASES = { 
    'default': {
        'ENGINE': 'django.db.backends.postgresql', 
        'NAME': 'smartmemo', 
        'USER': 'postgres', 
        'PASSWORD': config('POSTGRES_PASSWORD'), 
        'HOST': 'localhost', 'PORT': '5432', 
    } 
}

パスワードなどは.envから読み込むようにしています。

SQLiteからデータを移行

QLiteからデータを移行

既存のSQLiteデータをDjangoのdumpdataで書き出し、PostgreSQLへloaddataで読み込みました。

python -X utf8 manage.py dumpdata --indent 2 --output data.json --exclude contenttypes --exclude auth.permission

その後、PostgreSQL側へデータを読み込みました。

途中、Profileを自動作成するpost_saveシグナルがfixtureの読み込み時にも動作し、データの重複エラーが発生しました。

一時的にシグナルを無効にしてデータを移行し、移行後に元へ戻しました。

移行後の確認

PostgreSQLへデータが正常に移行されたことを確認し、実際にSmartMemoへログインできるか確認しました。

既存ユーザーのデータも確認でき、SQLiteからPostgreSQLへの移行が完了しました。

セキュリティ設定も見直し

データベース移行と合わせて、SECRET_KEYとDEBUGも環境変数から読み込むように変更しました。

SECRET_KEY = config('SECRET_KEY')
DEBUG = config('DEBUG', default=True, cast=bool)

SECRET_KEYなどの情報は.envに保存し、.gitignoreでGit管理の対象外にしています。

また、python manage.py check --deployを実行して、Djangoのセキュリティチェックも行いました。

ローカル開発環境のため、HTTPS関連などの警告は本番公開時に対応する予定です。

おわりに

今回は、SmartMemoのデータベースをSQLiteからPostgreSQLへ移行しました。

個人開発でのデータベース移行は初めてだったため、途中でシグナル関連のエラーなどもありましたが、実際にデータを移行してログインまで確認することができました。

今後は、ユーザー入力やファイルアップロード、認証・認可などのセキュリティ面についても確認していく予定です。

SmartMemoの完成に向けて、少しずつ改善していきます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?