Django: What are the best practices to migrate a project from sqlite to PostgreSQL

后端 未结 7 1206
礼貌的吻别
礼貌的吻别 2020-12-04 10:25

I need to migrate a complex project from sqlite to PostgreSQL. A lot of people seems to have problem with foreign keys, data truncature and so on...

  • Is there a
7条回答
  •  生来不讨喜
    2020-12-04 11:09

    In my experience, dumping & restoring from SQL doesn't work properly.

    You should follow this sequence instead:

    1. Dump db contents to json

    $ ./manage.py dumpdata > dump.json
    

    2. Switch the backend in settings.py

    DATABASES = {
        # COMMENT OUT:
        # 'default': dj_database_url.config(default='sqlite:////full/path/to/your/database/file.sqlite'),
        # ADD THIS INSTEAD:
        'default': dj_database_url.config(default='postgres://localhost:5432/postgres_db_name'),
    }
    

    3. Syncdb and migrate the new DB to the same table structure

    $ ./manage.py syncdb
    $ ./manage.py migrate
    

    4. Load the json to the new db.

    $ ./manage.py loaddata dump.json
    

    5. Congrats! Now the new data is in your postgres db.

提交回复
热议问题