如何解决如何将 IntegerField 迁移到外键
我有这样的模型:
class MyModel(models.Model):
other_id = models.IntegerField()
这是一个填充了有效数据的现有表格。我想迁移到
class MyModel(models.Model):
newbie = models.ForeignKey(
OtherModel,on_delete=models.CASCADE,db_constraint=False,db_column="other_id",)
python manage.py sqlmigrate app 0069
BEGIN;
--
-- Add field
--
ALTER TABLE `mymodel` ADD COLUMN `other_id` integer DEFAULT 1 NOT NULL;
ALTER TABLE `mymodel` ALTER COLUMN `other_id` DROP DEFAULT;
--
-- Remove field
--
ALTER TABLE `mymodel` DROP COLUMN `other_id`;
有没有办法说服 Django 在没有这个练习的情况下将该字段视为外键?我想避免--fake
迁移的需要。
解决方法
根据建议,编写自己的迁移会有所帮助:
operations = [
migrations.AlterField(
model_name="mymodel",name="other_id",field=models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,related_name="other",to="ddcz.UserProfile",db_column="other_id",db_constraint=False,),migrations.RenameField("MyModel","other_id","other"),]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。