Tengo una aplicación web usando sqlalchemy (dentro de Pylons). Necesito cambiar el esquema de manera eficiente para poder cambiar la versión de producción al menos a diario, tal vez más, sin perder los datos.¿Vale la pena usar sqlalchemy-migrate?
He jugado un poco con sqlalchemy-migrate durante el fin de semana y diría que me ha causado una mala impresión. Primero Creo que no puede ayudar con la migración entre dos motores de bases de datos; eso es algo que probablemente podría hacerse solo con sqlalchemy. En segundo lugar, los documentos no parecen actualizados. Tuve que cambiar algunas opciones de línea de comandos, como dar la ruta del repositorio en cada comando, esto podría ser un error de migración.
Pero lo peor es el comando "manage.py test". No solo realmente modifica la base de datos (este punto está claramente indicado en la documentación, no puedo culpar a la migración) pero mi primer script de migración simplemente hizo una simple y estúpida migración de esquemas, dejando el db actualizado con un esquema diferente el original. Pero la "prueba manage.py" simplemente respondió algo así como
success !
es decir, que ni siquiera comprobar si el esquema se deja en un estado coherente. Entonces ¿vale la pena usar migrate? ¿Hay alguna ventaja en comparación con el método Hágalo usted mismo asociado con las buenas prácticas as proposed by S.Lott? ¿Existen alternativas a sqlalchemy-migrate simplificando realmente el proceso de migración o simplemente estoy tratando de usar migrar con un a priori (entonces muéstrenme por qué no es claramente superior a crear columnas CSV como se propone en el enlace de arriba) ?
¡Muchas gracias!
Escuché Alembic por primera vez, así que revisé el enlace. ¡Qué escrito por Mike Bayer, el autor de SQLAlchemy! Definitivamente voy a probarlo. –
Si usa Flask, le recomiendo usar Alembic junto con Flask-Migrate, que hace que todo sea mucho más fácil. http://flask-migrate.readthedocs.org – fnkr
Seguí tu consejo y cambié, y ahora [Tengo una pregunta] (http://stackoverflow.com/q/27911685/656912). – orome