urls tutorial template example desde cero django data-migration

tutorial - Cuál es la mejor forma de migrar datos en django



httpresponse django example (6)

Después de hacer algunos cambios en mis modelos (por ejemplo, un nuevo campo en un modelo y un nuevo modelo), ¿cuál es la mejor manera de reflejar estos cambios en mi base de datos poblada?

PD: quería ver muchas soluciones clasificadas en un solo lugar. Aparentemente, hay más soluciones ya mencionadas aquí .


Consulte con manage.py sqlall cuáles son los parámetros para las nuevas columnas y agréguelos manualmente en su base de datos con Alter table statements. De esta manera no tienes que volver a hacer tu base de datos; Requiere algo de conocimiento SQL aunque ...

Eche un vistazo aquí (Desplácese hacia abajo para "Realizar cambios en un esquema de base de datos")


Depende del alcance de los cambios. Si está más allá de ALTER, estás haciendo una cirugía mayor. Realice copias de seguridad del modelo y de la base de datos para que pueda regresar.

Mi preferencia es poner su nuevo modelo (revisado, corregido, expandido) como una NUEVA aplicación. No tendrá URL ni nada, solo un modelo.

  1. Creando el nuevo modelo como una nueva aplicación. Crea pruebas, solo para asegurarte de que funciona.
  2. syncdb para construir esta implementación provisional del nuevo modelo.
  3. Escriba una pequeña utilidad de una sola vez para consultar su modelo anterior y cargue su nuevo modelo. Es posible que desee probar esto en SQL puro. Prefiero escribir una consulta simple, construir y guardar el bucle.
  4. Después de cargar el nuevo modelo, puede volcarlo en un archivo JSON.

Una vez que haya retirado los datos de su modelo anterior, puede reconstruir su base de datos en el nuevo formato preferido.

  1. Mueva el nuevo modelo a su aplicación existente.
  2. Elimine las versiones anteriores de las tablas de la aplicación.
  3. syncdb para construir las nuevas tablas.
  4. Cargue el archivo JSON con los datos.

Otra técnica es usar los argumentos dumpdata y loaddata para manage.py, lo que elimina su base de datos en el medio:

  1. python manage.py dumpdata > dump.json
  2. Con una herramienta externa, elimine las tablas afectadas o elimine todo el contenido de base de datos.
  3. python manage.py loaddata dump.json

Consulte los documentos de manage.py para obtener más información.


Perform these steps in order may help you :

For more details,

clickhere: http://south.readthedocs.org/en/latest/

1) python manage.py schemamigration apps.appname --initial

El paso anterior crea una carpeta de migración como predeterminada.

2) python manage.py migrate apps.appname --fake

genera una migración falsa.

3) python manage.py schemamigration apps.appname --auto

Luego puede agregar campos como desee y realizar el comando anterior.

4) python manage.py migrate apps.appname

A continuación, migre los archivos a la base de datos.



He hecho una pregunta similar aquí y obtuve bastantes respuestas.

Hay muchas formas de hacerlo, como hacer dumping y volver a cargar manualmente con SQL, usar accesorios o usar uno de los paquetes de esquema de evolución "emergentes" para Django: