

Python,DjangoでWEBシステムを開発しています。

ローカル環境でコーディング、動作確認後に、リモートサーバーへデプロイして、本番環境へ新たな動作を追加するという手順で開発しています。

Djangoでは、データベースに関係するmodelファイルに変更がある場合、それを反映させるために`makemigrations`と`migrate`コマンドの実行が必要になりますが、ローカル環境で動作確認済みのプロジェクトをデプロイし、本番環境のサーバーで`migrate`すると実行できません。

実行できない時の症状（必要な時はmigrationsファイルをmergeしてから行います）：

[code]

     No migrations to apply.
    
[/code]

この表示が出た場合、本番環境のデータベースのテーブルを、一度全て削除すると、上の表示はなくなり新しい内容を反映させる事ができますが、本番環境のデータベースには、すでに運用に使用しているデータがあるため、削除する方法はとりたくない状況です。  
（問題が起きる際、migrationsのファイルは削除して、`makemigrations`で再度作成するのは構いません）

本番環境で`migrate`を行い、上記の症状になった時に、データベースの情報を消さずに反映させる方法はありますでしょうか？

* * *

上記の表記となる原因として考えられる事は、  
例えば）

[code]

    migrations
    __ 0001_initial.py
    __ 0002_auto_20200116_1200.py
    __ 0003_auto_20200116_1230.py
    __ 0004_auto_20200116_1245.py
    __ 0005_auto_20200116_1255.py
    __ ＿int＿.py
    
[/code]

migrationsフォルダの中が、このような内容になった場合、ローカルの環境では、新しいファイルができるごとに`migrate`を行いますが、本番環境では1度だけの`migrate`の実行になる事です。

models.pyの内容を頻繁に変更しながら、コーディングする際は、`makemigrations`を行う度に、本番環境にデプロイし、`migrate`する事が難しく、ローカルの環境である程度の単位でmodels.pyの変更、動作確認を行ってから、本番環境に反映させたいと思っています。

●開発環境（ローカル、リモート共に）  
Python: 3.7.5  
Django: 2.2.2


CC BY-SA 4.0
2020-01-17T02:27:48.630
62312
2020-01-17T05:29:58.557
2020-01-17T05:29:58.557
36988
36988
question
python python3 django
Python,Djangoプロジェクトが本番環境でmigrateできない