質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

2434閲覧

Djangoマイグレーション履歴の残りカスを削除したい

fukazume

総合スコア78

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/09/29 05:25

編集2020/09/29 07:12

##経緯
既存Djangoプロジェクトのmigrateでエラーが出るようになったため、migration関連ファイルを削除したり--fakeオプションでmigrateなど色々してみたのですが改善できませんでした。

(※この時、app単位の履歴ファイルはmigrations/配下にあるので削除しやすかったですが、auth, contenttypes, sessionsなどはどこにマイグレーションファイルがあるのかよくわかりませんでした。)

その後、一から新規プロジェクトとして作り直そうと決めました。

##再現手順

  1. 新規Djangoプロジェクト用のフォルダをエクスプローラーにて作成し、そのディレクトリ上で
  2. cmdでコマンド「django-admin startproject project .」を実行
  3. cmdでコマンド「python manage.py showmigrations」を実行

##再現結果&質問
新規プロジェクトなのでmigration履歴が全く無い状態を期待していましたが、既存Djangoプロジェクトのmigration履歴の残りカス(?)が表示されています。

Djangoパッケージ本体のどこか等へキャッシュのように保存されているのでしょうか?履歴無しでまっさらの状態から新規プロジェクトを開始するにはどうすればよいでしょうか?

(--fakeオプションでのmigrateとかではなく、根本的に履歴なしの状態を希望しています。)

説明不足な点などございましたら、適宜追記してまいりますので、アドバイスいただけますと大変ありがたく存じます。

commandprompt

1>python manage.py showmigrations 2admin 3 [ ] 0001_initial 4 [ ] 0002_logentry_remove_auto_add 5 [ ] 0003_logentry_add_action_flag_choices 6auth 7 [ ] 0001_initial 8 [ ] 0002_alter_permission_name_max_length 9 [ ] 0003_alter_user_email_max_length 10 [ ] 0004_alter_user_username_opts 11 [ ] 0005_alter_user_last_login_null 12 [ ] 0006_require_contenttypes_0002 13 [ ] 0007_alter_validators_add_error_messages 14contenttypes 15 [ ] 0001_initial 16 [ ] 0002_remove_content_type_name 17sessions 18 [ ] 0001_initial 19

##追記09/29

新規プロジェクト時の初期値は(no migrations)、または[ ] 0001_initial なんじゃないかと想像いたししました。
(以下の想像上の期待した実行結果をご覧ください。)

commandprompt

1>python manage.py showmigrations 2admin 3 (no migrations) or [ ] 0001_initial 4auth 5 (no migrations) or [ ] 0001_initial 6contenttypes 7 (no migrations) or [ ] 0001_initial 8sessions 9 (no migrations) or [ ] 0001_initial 10

##環境
Windows 10
Django 2.2.13

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

なにか問題があるようには見えません。
ここにはDjango組み込みのアプリケーションのmigrationしか見当たりません。
django-admin startprojectでsettings.pyのINSTALLED_APPSに指定されるものです。

また、そのいずれもがDBに反映されていません。([ ]という表示から。DBに反映されていたら[X]と出ます)
migrateしていないのですから、それで正常ではないかと思います。

admin, auth, contenttypes, sessions のマイグレーションは、Djangoのインストール先のcontribの下にそれぞれのアプリがあって、その中にあります。

投稿2020/09/29 06:46

quickquip

総合スコア11235

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fukazume

2020/09/29 07:09

いつもご回答ありがとうございます!説明文に「追記09/29」という項目名で追記いたしました。新規プロジェクトなので (no migrations) か[ ] 0001_initialがshowmigrations実行時の初期値かと想像しましたが、再現時のように新規プロジェクトでもデフォルトで予めいくつかmigrationが予定されているものなのでしょうか?
quickquip

2020/09/29 07:23

回答に書いたことの繰り返しですが、settings.pyのINSTALLED_APPSにアプリケーションが指定されていてそこにmigtrationsがある、というのが事実であり現実ではないですか?
fukazume

2020/09/29 08:04

はい、「settings.pyのINSTALLED_APPSにアプリケーションが指定されていてそこにmigtrationsがある、」というのは事実です。一方で例に示しましたように、新規プロジェクト作成直後でマイグレーションが既に予定されているのか、切り分けができなかったので質問させていただきました。再インストールなどして挙動を確かめてみます。
quickquip

2020/09/29 08:20

「一方で」と接続するのはなぜでしょう? settings.pyのINSTALLED_APPSにアプリケーションが指定されていてそこにmigtrationsがある。だから、新規プロジェクト作成直後でマイグレーションが既に予定されている だと私は考えてしまうですけれど、そうではない理由があるのでしょう。こちらに伝わってなくて説明できないポイントはおそらくそこです。
fukazume

2020/09/29 10:51

「一方で」と接続したのは、ファイル有無とは別に、時系列的にそれらがいつ作成されたファイル群なのか確証がなかった(結果的に残りカス云々という私の理解が誤りだった)からです。 「新規プロジェクト作成直後でマイグレーションが既に予定されている」という「新築直後にリフォーム予定あり」のような独特な意味合いに混乱したのだと思います。 フォローアップいただき誠にありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問