How to migrate Django models from mysql to sqlite

2019-03-16 07:09发布

I have a Django deployment in production that uses MySQL.

I would like to do further development with SQLite, so I would like to import my existing data to an SQLite database. I

There is a shell script here to convert a general MySQL dump to SQLite, but it didn't work for me (apparently the general problem isn't easy).

I figured doing this using the Django models must be much easier. How would you do this? Does anyone have any script to do this?

4条回答
倾城 Initia
2楼-- · 2019-03-16 07:27
叼着烟拽天下
3楼-- · 2019-03-16 07:35

Have you tried using manage.py dumpdata > datadump and then when the new database is set up correctly, use python manage.py loaddata datadump?

查看更多
叼着烟拽天下
4楼-- · 2019-03-16 07:46

If you have contenttypes in installed app

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

Use script like what for copying you entry to new base:

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())

See full manual here

查看更多
放我归山
5楼-- · 2019-03-16 07:50

use

manage.py dumpdata > your_file.json

to export your data from the production system (docs).

Then move the file on the development system and run

manage.py loaddata your_file.json

You can also put the file in your_app/fixtures folder with name "initial_data.json" and it will be automatically loaded when you run "manage.py syncdb" (docs).

查看更多
登录 后发表回答