manage.get.gov/docs/operations/import_export.md
2024-05-10 07:36:23 -04:00

1.6 KiB

Export / Import Tables

A means is provided to export and import individual tables from one environment to another. This allows for replication of production data in a development environment. Import and export are provided through the django admin interface, through a modified library, django-import-export. Each supported model has an Import and an Export button on the list view.

Export

When exporting models from the source environment, make sure that no filters are selected. This will ensure that all rows of the model are exported. Due to database dependencies, the following models need to be exported:

  • User
  • Contact
  • Domain
  • DomainRequest
  • DomainInformation
  • DomainUserRole
  • DraftDomain
  • Websites
  • Host
  • HostIP

Import

When importing into the target environment, if the target environment is different than the source environment, it must be prepared for the import. This involves clearing out rows in the appropriate tables so that there are no database conflicts on import.

Preparing Target Environment

Delete all rows from tables in the following order through django admin:

  • DomainInformation
  • DomainRequest
  • Domain
  • User (all but the current user)
  • Contact
  • Websites
  • DraftDomain
  • HostIP
  • Host

Importing into Target Environment

Once target environment is prepared, files can be imported in the following order:

  • User (After importing User table, you need to delete all rows from Contact table before importing Contacts)
  • Contact
  • Domain
  • Host
  • HostIP
  • DraftDomain
  • Websites
  • DomainRequest
  • DomainInformation
  • UserDomainRole

Optional step:

  • Run fixtures to load fixture users back in