私の古いmySQLデータベースからDjango/sqliteに10,000レコード以上を移行しました。私の古いmysqlスキーマのSongテーブルでは、アーティストフィールドは1対多のフィールドではなく、mysql varchar
フィールドでした。私の新しいDjangoモデルでは、アーティストフィールドをForeignKey
に変換し、temp_artistを使用して古いデータベースのアーティスト名を一時的に保存しました。DjangoモデルCharFieldから外部キーを導入
temp_artistフィールドに基づいて、各Songインスタンスのアーティストの外部キーを作成するにはどうすればよいですか?私は、マネージャのget_or_create
メソッドを使用する必要があると仮定していますが、どこにどのようにコードを記述しますか?以下
私のモデル:
class Artist (models.Model):
name = models.CharField(max_length=100)
class Song (models.Model):
artist = models.ForeignKey(Artist, blank=True, null=True, on_delete=models.CASCADE, verbose_name="Artist")
temp_artist = models.CharField(null=True, blank=True, max_length=100)
title = models.CharField(max_length=100, verbose_name="Title")
duration = models.DurationField(null=True, blank=True, verbose_name="Duration")
2番目の方法を使用している場合、myapp_artistテーブルは現在データがなく空であり、アーティスト名フィールドを最初に作成する必要があります。したがって、この時点でmyapp_artistのSELECT IDをどのようにしますか? – bayman
更新しました – e4c5
質問に小さなエラーがありました。それは別個のものを必要とした。また、好奇心から唯一のユニークな – e4c5