Django 数据库迁移

Django 数据库迁移

迁移是将我们对模型所做的更改应用到数据库架构中的一种方式。Django为每个模型创建一个迁移文件,该文件位于 migration 文件夹中,用于创建表架构,每个表都与创建迁移的模型映射。

Django提供了各种命令,用于执行与迁移相关的任务。在创建模型后,我们可以使用这些命令。

  • makemigrations: 用于创建包含模型表架构代码的迁移文件。
  • migrate: 根据迁移文件中定义的架构创建表。
  • sqlmigrate: 用于显示已应用迁移的原始SQL查询。
  • showmigrations: 列出所有迁移及其状态。

假设我们有一个模型如下,并包含以下属性。

模型

//models.py

from django.db import models
class Employee(models.Model):
    eid = models.CharField(max_length=20)
    ename = models.CharField(max_length=100)
    econtact = models.CharField(max_length=15)
    class Meta:
        db_table = "employee"

为此模型创建迁移,请使用以下命令。它将在migration文件夹内创建一个迁移文件。

$ python3 manage.py makemigrations

Django 数据库迁移

这个迁移文件包含了创建一个Migration类的代码,该类包含了employee表的名称和字段。

迁移

// 0001_initial.py

from django.db import migrations, models
class Migration(migrations.Migration):
    initial = True
    dependencies = [
    ]
    operations = [
        migrations.CreateModel(
            name='Employee',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('eid', models.CharField(max_length=20)),
                ('ename', models.CharField(max_length=100)),
                ('econtact', models.CharField(max_length=15)),
            ],
            options={
                'db_table': 'employee',
            },
        ),
    ]

创建迁移后,将其迁移到数据库中以实现永久反映。迁移命令如下。

$ python3 manage.py migrate

Django 数据库迁移

除了创建迁移外,我们还可以查看应用的迁移所执行的原始SQL查询。使用 sqlmigrate app-name migration-name 来获取原始SQL查询。以下是一个示例。

$ python3 manage.py migrate

Django 数据库迁移

并且showmigrations命令用于显示应用的迁移。请参见示例。

如果没有提供app-name,则显示应用于该项目的所有迁移。

$ python3 manage.py showmigrations

Django 数据库迁移

我们可以通过指定app名称来获取特定于应用程序的迁移,见例子。

$ python3 manage.py showmigrations myapp

Django 数据库迁移

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程