1."数据库迁移"(Database Migration):
在Django框架中,数据库迁移是将你的模型(即定义在models.py
文件中的数据库表结构)变更同步到数据库中的过程。这包括创建新表、修改现有表结构(如添加或删除字段)以及执行其他数据库结构变更。
2.流程:
-
定义模型 :在Django应用的
models.py
文件中定义或修改模型类。 -
生成迁移文件 :运行
python manage.py makemigrations
命令,Django会自动检测到模型的变化,并为这些变化创建一个新的迁移文件。这个文件包含了将模型变更应用到数据库所需的所有操作。 -
应用迁移 :运行
python manage.py migrate
命令,Django会应用所有未执行的迁移,更新数据库结构以匹配模型定义。
3.例子
在创建的应用(app)的models.py文件内编写。
python
from django.db import models
# Create your models here.
class Sight(models.Model):
""" 景点基础信息 """
name = models.CharField('名称', max_length=64)
desc = models.CharField('描述', max_length=256)
main_img = models.ImageField('主图', upload_to='%Y%m/sight/', max_length=256)
banner_img = models.ImageField('详情主图', upload_to='%Y%m/sight/', max_length=256)
content = models.TextField('详细')
score = models.FloatField('评分', default=5)
min_price = models.FloatField('最低价格', default=0)
province = models.CharField('省份', max_length=32)
city = models.CharField('市区', max_length=32)
area = models.CharField('区/县', max_length=32, null=True)
town = models.CharField('乡镇', max_length=32, null=True)
is_top = models.BooleanField('是否为精选景点', default=False)
is_hot = models.BooleanField('是否为热门景点', default=False)
is_valid = models.BooleanField('是否有效', default=True)
created_at = models.DateTimeField('创建时间', auto_now_add=True)
updated_at = models.DateTimeField('修改时间', auto_now=True)
class Meta:
db_table ='sight'
ordering = ['-updated_at']
注意:
要使用这个模型,你需要确保你的Django项目已经配置好了数据库,并且你已经创建了相应的数据库表。
你可以通过以下命令来创建和应用迁移
python
python manage.py makemigrations
python manage.py migrate