如何将Django模型从mysql迁移到sqlite(或任何两个数据库系统之间)?

时间:2010-12-28 07:35:32

标签: django django-models database-migration

我在生产中使用MySQL进行Django部署。

我想用SQLite进行进一步的开发,所以我想将现有数据导入SQLite数据库。我

有一个shell脚本here将一般的MySQL转储转换为SQLite,但它对我不起作用(显然一般问题并不容易)。

我认为使用Django模型这样做必须要容易得多。你会怎么做?有没有人有任何脚本可以做到这一点?

4 个答案:

答案 0 :(得分:17)

使用

manage.py dumpdata > your_file.json

从生产系统(docs)导出数据。

然后在开发系统上移动文件并运行

manage.py loaddata your_file.json

您还可以将文件放在your_app / fixtures文件夹中,名称为“initial_data.json”,并在运行“manage.py syncdb”(docs)时自动加载。

答案 1 :(得分:2)

您是否尝试过使用manage.py dumpdata > datadump,然后在正确设置新数据库时使用python manage.py loaddata datadump

答案 2 :(得分:1)

如果您在已安装的应用中有内容类型

INSTALLED_APPS = (
    'django.contrib.contenttypes',
)

使用脚本,例如复制您进入新基地的脚本:

from django.contrib.contenttypes.models import ContentType

    def run():

        def do(Table):
            if Table is not None:
                table_objects = Table.objects.all()
                for i in table_objects:
                    i.save(using='slave')

        ContentType.objects.using('slave').all().delete()

        for i in ContentType.objects.all():
            do(i.model_class())

请参阅完整的手册here

答案 3 :(得分:0)