Django migrations依赖项目处理

Django migrations依赖项目处理

迁移依赖关系

    依赖是一个必须在该迁移之前运行的迁移列表

在上面的情况,没有必须提前运行的东西,所以没有依赖关系。但是,比如说如果你有外键相关键,你就要保证在你添加一个外键之前先创键一个模块。所以,让我们假设我们有一个叫做main的应用,它定义了我们想要在外键中引用的一个数据表,那么我们的依赖列表可能是这样的:

dependencies = [
  ('main', '__first__'),
]

上面的依赖说,main应用的迁移必须要首先运行

你也可能对特定的文件有依赖关系,比如:

dependencies=[
  (‘main’,'0001_initial'),
]

这是一个对main应用中的叫做0001_initial的文件的依赖。
依赖也可以组合,这样你就有多个依赖关系。这个功能提供了更多的灵活性,你可以容纳依赖于来自不同应用的模块的外键。这也意味着迁移的编号(通常是0001,0002,0003,...)不用严格地按照他们应用的顺序来排序。你可以添加任何你想要的依赖,这样控制顺序就不必重新编号所有的迁移。
迁移操作

Migration()类中的第二个列表是operations列表。这是一个用于迁移的操作列表,一般来说,该操作可以在下面类型中的:

    CreateModel:正如你所猜测的:这会创建一个新的模块,参考上面的例子
    DeleteModel:删除数据库里的一个表;只是略过这个模块
    RenameModel:给出old_name和new_name,这会重命名模块
    AlterModelTable:更改与模块相关联的表的名称,同db_table
    AlterUniqueTogether:更改特别的约束
    AlteIndexTogether:更改模型的自定义索引

    AddField:就行它听起来那样,这有一个例子:
        python migrations.AddField( model_name='PriceHistory', name='market_cap', field=models.PositiveIntegerField(), ),
    RemoveField:我们不再想要那个字段,,删掉他吧
    RenameField:给出model_name,old_name和new_name,用new_name来替换字段的old_name 这儿也有几个“特别的”运算:
    RunSQL:这允许你通过原始的SQL语句并执行它作为模型的一部分
    RunPython:通过调用可执行的;对于像作为迁移的一部分数据加载这样的事情来说是非常有用的

    你甚至可以写自己的规则。 通常当你运行迁移的时候,Django会创造迁移必要的依赖和操作。当然,了解迁移文件本身,和他们是怎样工作的,会给你的工作带来更多的灵活性。


Required for comment verification
2020年4月18日 00:38 - StepSoync  
Comprare Il Viagra On Line [url=https://abuycialisb.com/#]Cialis[/url] Cialis 20mg Suisse <a href=https://abuycialisb.com/#>buy cialis online</a> Will Propecia Work Forever Hair Loss
回复
2020年4月13日 12:24 - StepSoync  
Zithromax Off Patent [url=https://apcialisle.com/#]can i buy cialis online[/url] Antibiotics Used For Gum Infections Amoxicillin <a href=https://apcialisle.com/#>cheap cialis online pharmacy</a> Vip Transaction Pharmacy
回复
2020年3月29日 09:34 - Mattiedem  
Zoloft Online Pharmacy [url=https://apcialisle.com/#]buy cialis online canada[/url] Levothyroxine Buy Online <a href=https://apcialisle.com/#>Cialis</a> Hay Viagra Generico
回复