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.

列的顺序也是一个“实现细节”。数据库不用于 呈现 输出,它们用于存储、检索和聚合数据。