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

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

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

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

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Python

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

Q&A

解決済

1回答

547閲覧

マイグレーションは既存のモデル定義を変更出来るわけではない?

Lim-Nic

総合スコア18

Django

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

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Python

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

0グッド

0クリップ

投稿2019/07/29 03:01

前提

python,Djangoを用いてSNSアプリを作成しています。
問題は既に解決済みですが、マイグレーションについてイマイチ理解できていないと
思ったので、今回の問題を例にアドバイスを頂きたいです。

事象

アプリ作成時にマイグレーションを行い、その後アプリ作成後にモデル定義の
間違いに気付きました。
既に作成されているマイグレーションファイルを削除し、再度マイグレーションを
行いましたが、改善されず。
直接データベースを中を覗くと、モデル定義は修正されていない状態のままでした。

実際の手順 1.モデル作成   Goodモデル     owner     messeage ←スペル間違い 2.マイグレーション 3.ミス発見、以下のマイグレーションファイルの削除   migrations/__init__.py 0001_initial.py 4.修正後、マイグレーション 5.修正されず(?) ### 質問 DBに関することは、全てマイグレーションを行えば編集が出来ると考えていましたが 今回の出来事でマイグレーションの動作について疑問が出てきました。 ・モデル定義は1度設定すると、マイグレーションでは修正できない? ・新しくモデルを生成する場合のみ、マイグレーションを使用する? よろしければご教授お願い致します。

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

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

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

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

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

guest

回答1

0

ベストアンサー

既に作成されているマイグレーションファイルを削除し、再度マイグレーションを

行いましたが、改善されず。

一度データベースに反映させたマイグレーションを、変更・削除してはいけません(データベースとマイグレーションの状態を矛盾させることになってしまうます)。データベースを変更したい場合、したい変更を行う新たなマイグレーションを作成して行います。

投稿2019/07/29 03:07

maisumakun

総合スコア145121

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

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

maisumakun

2019/07/29 03:09

> ・モデル定義は1度設定すると、マイグレーションでは修正できない? > ・新しくモデルを生成する場合のみ、マイグレーションを使用する? どちらも答えは「いいえ、新たに変更用のマイグレーションを作成してそれを反映させることで変更してください」となります。
Lim-Nic

2019/07/29 04:31

> 新たに変更用のマイグレーションを作成してそれを反映させる 実際に実行してみたところ、変更することが出来ました。 今回はデータベースで直接変更を行いましたが、プログラムとデータベースでチグハグが起こっている事象や解決方法の知識が増えました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問