django如何通过迁移文件给数据库已存在的字段添加新的数据。
之前自己开发的时候从来没有考虑过这个问题。
举个例子: 现在多人合作开发一个项目,数据库里面需要新的数据,而且这些数据因为一些原因必须是统一的,因为新的功能需要这些数据。
这种情况,我们可以用迁移文件来实现,本地实现一个迁移文件,其他开发者直接执行python manage.py migrate就可以啦。
首先执行:
python manage.py makemigrations --empty appname
会在你的appname对应的迁移文件目录下生成空的迁移文件。
然后在迁移文件中通过runpython命令实现(伪代码):
class Migration(migrations.Migration): def add_new_model_data(apps, schema_editor): model = apps.get_model('appname', 'model')
# 这个函数做相反的操作,比如上面的添加了哪些数据,这里就删除哪些数据,方便日后回滚。 def del_model_data(apps, schema_editor): model = apps.get_model('appname','model')
# 这个是自动生成的 dependencies = [ .... ] operations = [ migrations.RunPython(add_new_model_data, del_model_data), ]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix