美文网首页Django
Django - Migrations

Django - Migrations

作者: modeyangg_cs | 来源:发表于2016-03-15 00:01 被阅读702次

    自带db迁移功能在1.7版本之后,之前是利用第三方工具South.
    主要用到三个命令:

    1. migrate: 具体实施db migration, 同时回退和显示状态。
    2. makemigrations: 根据你现有的db model与之前的比较,生成新的migration.
    3. sqlmigrate: 显示migration的sql语句.

    操作步骤

    1. python manager.py makemigrations [--name changed_model ]
    2. python manager.py migrate

    依赖关系

    migrations是针对每个APP实例的,太复杂的关系可能会导致失败,特别是针对APP1和APP2这种依赖关系时,不可靠,需要人工写依赖。

    Migrations文件

    from django.db import migrations, models
    class Migration(migrations.Migration): 
          dependencies = [("migrations", "0001_initial")] 
          operations = [ 
              migrations.DeleteModel("Tribble"),     
              migrations.AddField("Author", "rating", models.IntegerField(default=0)), 
    ]
    

    主要是两部分组成:

    • dependencies: 一系列所依赖的migrations
    • operations: 具体操作的migrations动作,具体用法见migrations模块.

    为APP添加migrations

    如果APP已经有了model,并且已经创建了表,但是还没有migrations, 你就需要将他转化成可以使用migrations.

    $ python manage.py makemigrations your_app_label
    $ python manage.py migrate --fake-initial

    按照上述方法,就可以在后续的migrations提供支持了。

    相关文章

      网友评论

        本文标题:Django - Migrations

        本文链接:https://www.haomeiwen.com/subject/btoflttx.html