python/Django模型/数据库迁移/创建数据库表

1."数据库迁移"(Database Migration):

在Django框架中,数据库迁移是将你的模型(即定义在models.py文件中的数据库表结构)变更同步到数据库中的过程。这包括创建新表、修改现有表结构(如添加或删除字段)以及执行其他数据库结构变更。

2.流程:

  1. 定义模型 :在Django应用的models.py文件中定义或修改模型类。

  2. 生成迁移文件 :运行python manage.py makemigrations命令,Django会自动检测到模型的变化,并为这些变化创建一个新的迁移文件。这个文件包含了将模型变更应用到数据库所需的所有操作。

  3. 应用迁移 :运行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
相关推荐
wafrdggh1 小时前
2026电商快递批量查询怎么用?固乔助手模板设置评测
大数据·数据库·小程序
一个天蝎座 白勺 程序猿2 小时前
KingbaseES数据库归档重做日志文件管理:从配置到运维的实战指南
运维·数据库·oracle·kingbasees·金仓数据库
特立独行的猫A2 小时前
我给女儿写了个打字练习:一边敲键盘,一边把小学英语单词记牢
java·后端·python
cpolar技术支持3 小时前
「我这边连不上你那个服务」—— 用清单驱动的 TCP 连通性只读看板,cpolar 让远端同事自己取证
python·内网穿透·tcp·cpolar·网络诊断
云和数据.ChenGuang3 小时前
LangGraph 异步 Node 的设计与写法实践
开发语言·人工智能·python·机器学习·php
天诰4 小时前
SA-K-11 检索会消失吗与四个未解问题
java·服务器·人工智能·python·机器学习·ai编程
龙腾AI白云5 小时前
仿真到现实(Sim-to-Real)迁移:跨越仿真与现实鸿沟
数据库·机器学习·plotly·知识图谱·tornado
benchmark_cc5 小时前
用 QuantDash 读取美股行情:AAPL.US 的运行前检查、排错顺序与数据校验清单
python·数据分析·pandas·量化交易·股票数据·quantdash
freejackman7 小时前
【实战二】字段级血缘追踪:拆解 AST 迷局,精准穿透函数链与子查询
大数据·数据库·sql
.痞老板.8 小时前
mysql初阶--增删改查操作
数据库·mysql