2010-02-24 12 views
18

Tengo una instancia de Django-CMS que ya se está ejecutando en un entorno de producción. Me gustaría volcar todos los datos relacionados con el CMS (PÁGINAS y PLUGINS) para que pueda volver a cargarlo en mi entorno de desarrollo.Cómo volcar completamente los datos para Django-CMS

Cuando hago python manage.py dumpdata cms volca la mayoría de los datos, pero no todos. No se descarga el contenido de los complementos. Cuando miro la fuente django-cms, veo que los complementos están organizados en una carpeta diferente que el resto de los modelos. Estoy seguro de que esto tiene algo que ver con el comportamiento de dumpdata.

¿Alguien sabe cómo lograrían lo que estoy tratando de hacer?

¡Gracias por tu ayuda/respuestas!

+0

Si está utilizando ganchos de aplicaciones que probablemente debería exportar los datos de ellos, y en relación con ellos, los modelos también. –

Respuesta

2

Su comando dumpdata sólo se vuelca los datos para la aplicación cms, pero cada plugin (cms.plugins.text, cms.plugins.picture, etc.) es su propia aplicación, y por lo tanto necesita ser añadido a la línea de comandos.

+0

'python manage.py dumpdata cms.plugins.text' genera el siguiente resultado: ' error: Aplicación desconocida: cms.plugins.text' A pesar de que no disponemos de esta catalogado como uno de mis aplicaciones instaladas en mi settings.py principal y la aplicación está funcionando correctamente. – edub

+0

¿Podría mostrar un ejemplo de trabajo del comando dumpdata que utiliza? (gracias) – edub

+0

¿Pudo replicar este error? – edub

12

Aquí es una actualización con el procedimiento que utilizo:

./manage.py dumpdata >fixtures/all.json 

psql 
DROP DATABASE [DBNAME]; 
createdb -T template_postgis [DBNAME] 

./manage.py syncdb 

psql [DBNAME] 

delete from auth_group_permissions; delete from auth_permission; delete from django_admin_log; delete from django_content_type; 

Si no borra las tablas anteriores que obtendrá este error al cargar los accesorios:

IntegrityError: duplicate key value violates unique constraint django_content_type_app_label_key 

Y luego:

./manage.py loaddata fixtures/all.json 

Philipp

17

Los comandos de volcado y restauración integrados de Django funcionan bien para migrar los contenidos del CMS.

para volcar el contenido de la CMS, es necesario incluir tanto la aplicación CMS, así como cada uno de los tipos de plugin que está utilizando en el comando dumpdata, así que algo como:

manage.py dumpdata cms text picture link file [other plugin types] > cms_export.json 

para volcar su contenido (solo necesita el nombre de la aplicación, no la ruta completa, como cms.plugins.text).

+0

es posible que desee utilizar --indent = 4 para que pueda leer mejor la salida y ver si falta algo, o editarlo. –

+4

Además, si desea ser perezoso y preciso al mismo tiempo, use el comando cms para ver los complementos utilizados para determinar cuáles necesita realmente así: python manage.py cms lista complementos Esto solo mostrar los complementos en uso, y por lo tanto los que realmente tienen contenido que debe exportarse. – growlf

+0

Esto también será más importante con CMS 3.0 donde los complementos se han cambiado/cambiado de nombre y ya no forman parte de la aplicación CMS. – growlf

4

Para DjangoCMS 3.0, la sintaxis es la misma pero los nombres de los complementos han cambiado todos. Para obtener todos los plugins estándar:

./manage.py dumpdata cms djangocms_column djangocms_file djangocms_flash djangocms_googlemap djangocms_inherit djangocms_link djangocms_picture djangocms_style djangocms_teaser djangocms_text_ckeditor djangocms_video > cms_export.json

Cuestiones relacionadas