2011-03-31 9 views
8

Durante la fase de producción probablemente buscaría la funcionalidad de migración (con versiones y demás), pero mientras estoy en la etapa de desarrollo me pregunto cuál es la forma más común de manejar los cambios en mi models.py sería? La aplicación está configurada con SQLAlchemy.cómo manejar cambios de modelo en la pirámide

Soy relativamente nuevo en los frameworks web de python. Mi experiencia es PHP y más recientemente terminé un proyecto usando Symfony 1.4 donde normalmente solo podía hacer symfony doctrine:build --all --and-load y eso me ocuparía de reconstruir clases de modelo, recrear la base de datos y cargar accesorios de datos, entre otras cosas.

Actualmente lo que estoy haciendo es simplemente abandonar la base de datos, recrearla y servir la aplicación con el paster, que se encarga de recrear las tablas y cosas así.

Esta es probablemente una pregunta novato, pero ahí lo tienes.

Respuesta

2

Bien, no importa. He modificado mi initialize_sql así:

def initialize_sql(engine): 
    DBSession.configure(bind=engine) 
    Base.metadata.bind = engine 
    Base.metadata.drop_all(engine) #added this 
    Base.metadata.create_all(engine) 
    try: 
     populate() 
    except IntegrityError: 
     pass 

Afortunadamente esto sólo elimina las tablas, no toda la base de datos, lo que se ejecuta rápidamente.

4

Estoy usando ahora sql alquimia migrar y es bastante fácil.

aquí hay un tutorial: http://spyced.blogspot.com/2008/07/sqlalchemy-migrate-for-dummies.html

y un pdf con más información y tutoriales: http://www.google.com/url?sa=t&source=web&cd=5&sqi=2&ved=0CC4QFjAE&url=http%3A%2F%2Fsqlalchemy-migrate.googlecode.com%2Ffiles%2Fsqlalchemy-migrate-0.5.1.3-docs.pdf&rct=j&q=sqlalchemy%20migrate&ei=QgCUTYGGEcPPiALH65SdCQ&usg=AFQjCNHG-1IdCiIPSslwK_hTMiCzrYVvoA&sig2=b_5-I3D-nebSVR_7FccRvQ&cad=rja

es fácil de instalar, para hacer cambios (actualizaciones de versiones anteriores) a la base de datos de una manera sqlalchemy expresive .

Cuestiones relacionadas