Django 迁移重新排序专栏
Django migration Re-order column
我一直很困惑,如果有什么方法可以在 Django 中迁移时对列进行排序,首先就我而言,我的模型中没有 is_person
然后最终我想添加is_person
在我的模型中付款后,如 models.py 中的示例,那么问题是即使我在迁移时正确地排序了模型中的值,is_person
总是排在最后。在不删除整个数据库的情况下,如何在付款后添加列有什么技巧吗?
Models.py
class Person(models.Model):
covid_id = models.CharField(max_length=50,blank=True, null=True)
is_person = models.CharField(max_length=50,blank=True, null=True) // I want to add this
paid_by = models.CharField(max_length=50,blank=True, null=True)
date_receive = models.DateField(null=True, blank=True)
remarks = models.CharField(max_length=1500,blank=True, null=True)
eligible = models.CharField(max_length=50,blank=True, null=True)
amount_paid = models.CharField(max_length=60,blank=True, null=True)
Django 不关心列的顺序,一些 SQL 数据库似乎也不太关心。在某些 SQL 方言中,例如 MySQL,您确实可以指定“插入点”:
ALTER table <i>table_name</i> ADD COLUMN <i>my_column</i> INTEGER <b>AFTER <i>other_column</i></b>
但这不是标准化的SQL。例如对于 SQL 服务器,看起来实现此目的的唯一方法是 constructing a new table with the correct column order.
列的顺序也是一个“实现细节”。数据库不用于 呈现 输出,它们用于存储、检索和聚合数据。
我一直很困惑,如果有什么方法可以在 Django 中迁移时对列进行排序,首先就我而言,我的模型中没有 is_person
然后最终我想添加is_person
在我的模型中付款后,如 models.py 中的示例,那么问题是即使我在迁移时正确地排序了模型中的值,is_person
总是排在最后。在不删除整个数据库的情况下,如何在付款后添加列有什么技巧吗?
Models.py
class Person(models.Model):
covid_id = models.CharField(max_length=50,blank=True, null=True)
is_person = models.CharField(max_length=50,blank=True, null=True) // I want to add this
paid_by = models.CharField(max_length=50,blank=True, null=True)
date_receive = models.DateField(null=True, blank=True)
remarks = models.CharField(max_length=1500,blank=True, null=True)
eligible = models.CharField(max_length=50,blank=True, null=True)
amount_paid = models.CharField(max_length=60,blank=True, null=True)
Django 不关心列的顺序,一些 SQL 数据库似乎也不太关心。在某些 SQL 方言中,例如 MySQL,您确实可以指定“插入点”:
ALTER table <i>table_name</i> ADD COLUMN <i>my_column</i> INTEGER <b>AFTER <i>other_column</i></b>
但这不是标准化的SQL。例如对于 SQL 服务器,看起来实现此目的的唯一方法是 constructing a new table with the correct column order.
列的顺序也是一个“实现细节”。数据库不用于 呈现 输出,它们用于存储、检索和聚合数据。