django-fast-fixtures

Replace dumpdata and loaddata with migration aware fixture commands.


License
LGPL-3.0
Install
pip install django-fast-fixtures==0.7

Documentation

The fast_fixtures django application provides apps with a way to export fixtures which note the state of the database when they were made.

They then allow the database to move to that state when loading the data or warn the user about the discrepencies (if they want to play it save)

This module is very new and it's ideas are pretty radical. Please test and consider contributing to the code.

Caveats:

 * Output only supports json right now. This is a limitation of django's serializer structure.

Features:

 * Json file is backwards compatible and new data is ignored if not relivent.
 * Will not run any migrations for test fixtures, but this tools could be used to upgrade those fixtures.

Installation:

```python
  pip install django-fast-fixtures

  INSTALLED_APPS = (
    ...
    'fast_fixtures',
  )
```

Use:

```bash
  manage.py dumpdata --migrated > fixture.json

  manage.py migrate ... or another website instance

  manage.py loaddata fixture.json
```

Data Created:

  The data created in the json file is almost exactly the same, except for a new header object which appears at the start of the data stream:

```json
  [
  {
    "model": "auth.user",
    "fields": {},
    "migrations": {
      "app_label": "last_migration_label",
      ...
    },
  },
  ...
  other data
  ]
```

  The model and fields entries are there so the header is ignored by a normal loaddata process. Migrations lists all the apps that are included in this dump and their last applied migration in order.