Djangoの場合ですが、モデルの内容を変更した時はマイグレーションという操作を実行しなければデータベースへ反映されません。
そのマイグレーションの方法を備忘録として残しておきます。
Djangoではデータベースとしてsqliteを使用するとすると、「db.sqlite3」というファイルでデータベースは管理されることになります。
このファイルは、
python manage.py makemigrations
にて作成することができます。
ここからは実際に作成されたモデルを変更する場合の例となります。
まずはじめにモデルが以下のように登録されているものとします。
models.py
from django.db import models from django.utils import timezone class Music(models.Model): title = models.CharField('タイトル', max_length=50, null=True)
created_at = models.DateTimeField('日付', auto_now_add=True, null=True) def __str__(self): return self.title
この中に、artistのデータを追加しようとする場合にはたとえば以下のように変更することになります。
models.py
from django.db import models from django.utils import timezone class Music(models.Model): title = models.CharField('タイトル', max_length=50, null=True)
artist = models.CharField('アーティスト', max_length=50, null=True)
created_at = models.DateTimeField('日付', auto_now_add=True, null=True) def __str__(self): return self.title
Djangoのモデルの変更の場合、この追加を行ってファイル保存を行いますが、この変更とファイル保存だけではmodels.pyファイルは更新されますがデータベースの更新まではされません。
データベース側も更新するためには、変更のたびにマイグレーションという操作が必要になります。
その場合の方法は以下のようになります。
目次
1.モデルのマイグレーション方法
まず、Windowsならコマンドプロンプト、Macならターミナルにて、該当するDjangoプロジェクトのmanage.pyのあるディレクトリに移動します。
続いて、以下にてmodels.pyの内容からマイグレーションファイル(中間ファイル)が作成されます(appnameは適宜プロジェクトのアプリ名に変更)。
python manage.py makemigrations appname
その後で、以下を実行することで、マイグレーションファイルの内容をデータベースに反映します。
python manage.py migrate appname
2.マイグレーションの状況確認方法
終了後、以下にてマイグレーションの状況を確認できます。
python manage.py showmigrations appname
関連記事:
【Django】Djangoでのhtml(javascript)側からpython(views.py)側へ値を送る時の方法の一例 - Django Girls and Boys 備忘録
【Django】モデル内のレコード(オブジェクト)を削除する方法 - Django Girls and Boys 備忘録
【Django】モデルのデータ変更時のマイグレーション方法 - Django Girls and Boys 備忘録
【Django】モデルのインスタンス生成時のエラー情報(invalid literal for int() with base 10:) - Django Girls and Boys 備忘録
【Python】「文字列として受け取ったリスト」をリストに復元した時の対処方法、変換方法 - Django Girls and Boys 備忘録
【Git】Gitのダウンロード、インストール方法 - Django Girls and Boys 備忘録
【Git GitHub】初心者、初級者におすすめの入門書 - Django Girls and Boys 備忘録
【Python Django】git init について - Django Girls and Boys 備忘録
【Git】ユーザー名とメールアドレスの設定方法 - Django Girls and Boys 備忘録
【Git】git addとステージングエリア(インデックス)への登録について - Django Girls and Boys 備忘録
【Git】git commitとローカルリポジトリへの登録、gitの概略イメージ - Django Girls and Boys 備忘録
【Git GitHub】GitHubのアカウント作成方法 - Django Girls and Boys 備忘録
【Git GitHub】公開鍵の設定方法 - Django Girls and Boys 備忘録
【Git GitHub】Gitのダウンロード、インストールから「git add」、「git commit」によるGitへの登録までの一通りの方法 - Django Girls and Boys 備忘録
【Git GitHub】「git add」、「git commit」後の「git push」について、リモートリポジトリにプッシュする方法 - Django Girls and Boys 備忘録
【Git GitHub】プルリクエストとマージを実行する方法 - Django Girls and Boys 備忘録
【Git GitHub】リモートリポジトリをクローンする方法 - Django Girls and Boys 備忘録