14 Django 数据库迁移实战教程

14 Django 数据库迁移实战教程

在Django中,迁移数据库是一项重要的操作。它允许你在更改模型后,将更新应用到数据库中。本节将详细介绍如何在Django中进行数据库迁移,结合实际案例。

什么是迁移?

迁移是Django中用于跟踪和应用数据库模式更改的工具。当你对模型进行修改(如添加字段、删除字段、改变字段类型等)时,你需要通过迁移将这些更改反映到数据库中。

创建模型

首先,让我们创建一个简单的模型。在我们的案例中,我们将创建一个用于记录书籍信息的模型:

1
2
3
4
5
6
7
8
9
10
from django.db import models

class Book(models.Model):
title = models.CharField(max_length=100)
author = models.CharField(max_length=100)
published_date = models.DateField()
isbn_number = models.CharField(max_length=13)

def __str__(self):
return self.title

将上面的代码放入你的应用的 models.py 文件中。

创建迁移

添加模型后,你需要创建迁移来更新数据库。可以使用以下命令来生成迁移文件:

1
python manage.py makemigrations

运行这个命令后,Django会自动检测到模型的变化,并生成一个新的迁移文件。输出将类似于:

1
2
3
Migrations for 'your_app_name':
your_app_name/migrations/0001_initial.py
- Create model Book

在上面的输出中,0001_initial.py 是自动生成的迁移文件名。

应用迁移

迁移文件创建后,你需要将这些更改应用到数据库中。使用以下命令执行迁移:

1
python manage.py migrate

这条命令会将在之前生成的迁移文件应用到数据库,创建相应的表和字段。

查看当前迁移状态

如果你想查看当前的迁移状态,可以使用以下命令:

1
python manage.py showmigrations

该命令将显示所有应用的迁移和他们的状态(已应用或未应用)。

修改模型

现在假设我们想要在 Book 模型中添加一个 price 字段。我们将更新模型如下:

1
2
3
4
5
6
7
8
9
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.CharField(max_length=100)
published_date = models.DateField()
isbn_number = models.CharField(max_length=13)
price = models.DecimalField(max_digits=5, decimal_places=2) # 新增字段

def __str__(self):
return self.title

然后,运行 makemigrations 命令:

1
python manage.py makemigrations

Django将检测到模型的变化,并生成新的迁移文件。接着,应用这些迁移:

1
python manage.py migrate

删除字段

如果我们决定删除 isbn_number 字段,可以从模型中移除该字段:

1
2
3
4
5
6
7
8
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.CharField(max_length=100)
published_date = models.DateField()
price = models.DecimalField(max_digits=5, decimal_places=2)

def __str__(self):
return self.title

再次运行迁移命令:

1
2
python manage.py makemigrations
python manage.py migrate

Django将创建迁移以反映这个字段的删除并运用到数据库中。

总结

在本节中,我们介绍了如何在Django中进行数据库迁移。以下是操作的基本步骤:

  1. 创建或修改模型
  2. 使用 makemigrations 命令生成迁移文件
  3. 使用 migrate 命令将迁移应用到数据库
  4. 使用 showmigrations 查看迁移状态

通过这些步骤,你可以轻松地管理Django应用中的数据库结构。始终记得在每次修改模型后,都要进行相应的迁移操作,以保持数据结构的同步。

14 Django 数据库迁移实战教程

https://zglg.work/django/14/

作者

AI教程网

发布于

2024-08-08

更新于

2024-08-10

许可协议