マイグレーションファイルはどこに作成される?
マイグレーションファイルは、Djangoアプリケーションのmigrationsフォルダに作成されます。例えば、アプリケーション名がyour_django_appであれば、your_django_app/migrations/フォルダにマイグレーションファイルが作成されます。
具体的な手順と確認方法を以下に示します。
手順 1: モデルの更新
前述の通り、RakutenPriceResultモデルにbreak_even_pointフィールドを追加します。
手順 2: マイグレーションの作成
以下のコマンドを実行してマイグレーションファイルを作成します。
bash
python manage.py makemigrations your_django_app
このコマンドを実行すると、your_django_app/migrations/フォルダに新しいマイグレーションファイルが作成されます。このファイルの名前は通常、000X_auto_YYYYMMDD_HHMM.pyのような形式になります。
手順 3: マイグレーションファイルの確認
作成されたマイグレーションファイルは以下のように確認できます。
bash
ls your_django_app/migrations/
例えば、以下のような出力が得られるかもしれません。
bash
0001_initial.py
0002_auto_20240623_1400.py
__init__.py
0002_auto_20240623_1400.pyというマイグレーションファイルが新たに作成されたとします。
手順 4: マイグレーションの適用
以下のコマンドを実行してマイグレーションをデータベースに適用します。
bash
python manage.py migrate your_django_app
このコマンドにより、新しいフィールドがデータベースに追加されます。
手順 5: データの更新
前述の修正済み関数を使ってデータを更新します。
python
import pandas as pd
from your_django_app.models import RakutenPriceResult
def add_break_even_point():
# 損益が0円を登録(それをベースにして、赤字、黒字の計算に使う)
import_data = list(RakutenPriceResult.objects.values_list('original_product_code', 'cost_price', "yen_low_own_price"))
# DataFrameを作成
df = pd.DataFrame(import_data, columns=['original_product_code', 'cost_price', "yen_low_own_price"])
shipping = 500 # 送料
sizai = 50 # 梱包資材
zinkenhi = 0 # 商品別人件費
mall_fee_rate = 0.09 # モール手数料率
# 利益を計算する関数を定義
def calculate_profit(row):
revenue = row['yen_low_own_price']
cost = row['cost_price']
profit = revenue - cost - (revenue * mall_fee_rate) - shipping - sizai - zinkenhi
return profit
# 各行の利益を計算して新しい列に追加
df['break_even_point'] = df.apply(calculate_profit, axis=1)
# データベースに更新
for index, row in df.iterrows():
RakutenPriceResult.objects.filter(original_product_code=row['original_product_code']).update(break_even_point=row['break_even_point'])
# 結果を表示
profit_above_one = df[df['break_even_point'] > 1]
profit_zero_or_below = df[df['break_even_point'] <= 0]
print("利益が1円以上の行:")
print(profit_above_one)
print("n利益が0円以下の行:")
print(profit_zero_or_below)
# 関数の実行
add_break_even_point()
まとめ
- モデルに新しいフィールドを追加します。
python manage.py makemigrationsを実行してマイグレーションファイルを作成します。your_django_app/migrations/フォルダにマイグレーションファイルが作成されたことを確認します。python manage.py migrateを実行してマイグレーションを適用します。- データを更新する関数を実行します。

ディスカッション
コメント一覧
まだ、コメントがありません