python - Django (1.7) - 数据迁移

标签 python json django

我创建了一个空的数据迁移脚本来填充其中一个 使用

从 JSON 文件中获取数据的 app db 表
python manage.py makemigrations --empty <app name>

我想使用数据迁移脚本(根据 Django 1.7 文档,这是推荐的方法)使用名为 populate_db 将使用 bulk_create 添加 表中的多个条目,然后执行 save() 写入 对数据库的更改。目前自定义方法为空 因为我还在努力,但剧本看起来是这样的 现在

# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.db import models, migrations

def populate_db( apps, schema_editor ):
   print ‘Populating db from JSON file...'

class Migration(migrations.Migration):

   dependencies = [
       ('<app name>', '0003_auto_20150224_2024'),
   ]

   operations = [
                          migrations.RunPython( populate_db ),
   ]

如何测试此脚本以确保自定义方法有效 正如预期的那样,在我完全运行它之前?我可以从口译员那里打电话吗 并使用 db API 对其进行测试?

此刻如果我这样做

python manage.py migrate <app name>

它报告没有要应用的迁移。

最佳答案

您可以向后迁移:

python migrate <app name> 0003

然后再次运行迁移:

python migrate <app name>

更新:要使数据迁移可逆,请添加 reverse_code参数:

def depopulate_db(apps, schema_editor):
    print 'Deleting previously added data from db...'

class Migration(migrations.Migration):
    ...
    operations = [
        migrations.RunPython(populate_db, depopulate_db),
    ]

关于python - Django (1.7) - 数据迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29200025/

相关文章:

mysql - 如何从mysql数据库中选择键和值到json格式

python - Django:上传前调整图像大小

django orm - 如何在其父类(super class)的子类的外键上使用 select_related()

Python 绘图日志在 x/y Axis 上需要 10000 而不是 10^4

python - 多个热图子图 : Same Heatbar

python - 生成连接范围的 1D​​ NumPy 数组

python - 如何在 Django 1.4 中使用数据库路由器

python - 为什么打开资源管理器窗口并通过Python的子进程选择文件会返回错误代码1

java - 包含文件和 JSON 对象的多部分请求

javascript - 带有 JSON 数据的动态图表 - CanvasJS