Pregunta

Actualmente estoy buscando en el Python framework Django para el futuro db basado en aplicaciones web, así como de un puerto de algunas aplicaciones actualmente escrito en PHP.Uno de los peores problemas durante mis últimos años es mantener el control de esquema de base de datos de los cambios y la implementación de estos cambios en los sistemas productivos.No me he atrevido pidiendo ser capaz de deshacer de ellas, pero, por supuesto, para las pruebas y la depuración que sería una gran característica.De las otras preguntas aquí (como este o este), Puedo ver que no estoy sola y que esto no es un problema trivial.También, he encontrado muchas inspiraciones en las respuestas allí.

Ahora, como Django, parece ser muy poderoso, tiene herramientas para ayudar con la anterior?Quizás incluso en sus docs y me lo perdí?

¿Fue útil?

Solución

Hay al menos dos utilidades de terceros para manejar DB esquema de las migraciones, Sur y Django Evolución.No he probado ninguno de ellos, pero he escuchado cosas buenas sobre el Sur, aunque la Evolución ha sido alrededor de un poco más de tiempo.

También, busque en SchemaEvolution en el Django wiki.Es sólo una página de la wiki acerca de la migración de la base de datos.

Otros consejos

La última vez que revisé (versión 0.97), syncdb será capaz de agregar tablas a la sincronización de su esquema DB con su models.py archivo, pero no puede:

  • Cambio de nombre o agregar una columna en un poblado DB.Hay que hacerlo a mano.
  • Refactorize su modelo (como dividir una tabla en dos) y repoblar el DB en consecuencia.

Podría ser posible, aunque para escribir un guión de Django para hacer la migración, jugando con los dos diferentes los gerentes de, pero que puede tomar de edad, si su base de datos es grande.

Hubo una mesa redonda sobre la DB de los cambios de esquema en la reciente DjangoCon;hay un vídeo de la sesión (gracias a Google), que debería proporcionar información útil en un número de estas utilidades.

Y ahora también hay dmigrations.De anuncio:

django-la evolución de los intentos para solucionar este problema, de forma inteligente, mediante la detección de cambios de los modelos que todavía no se reflejan en el esquema de base de datos y averiguar lo que necesita hacer para llegar a los dos de nuevo en modo de sincronización. En contraste, dmigrations toma el estúpido enfoque:se requiere explícitamente que los cambios en una secuencia de migraciones, el cual será aplicado en vez de llevar una base de datos de la más reciente estado que refleja los modelos subyacentes.

Esto significa más trabajo para los desarrolladores que crean las migraciones, pero también hace que todo el proceso completamente transparente para nuestros proyectos, nos decidimos a ir con el sistema más simple que eso podría funcionar.

(Mi negrita)

He oído hablar mucho de bueno acerca de Django Esquema De La Evolución De La Rama y esos fueron opions de usuarios reales.Es mostely funciona fuera de la caja y hacer lo que se debe hacer.

U debe de búsqueda Dmigrations, funciona un poco diferente de django-eveoltions.Ella te muestra todo lo que está haciendo y para compliccated las cosas que le pide su intervetnions.Debe ser grande.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top