From 12bac7d8a608595841e1018555095a5378f10f37 Mon Sep 17 00:00:00 2001 From: Mauricio Baeza Date: Wed, 27 Dec 2017 01:12:58 -0600 Subject: [PATCH] Migracion para Usuarios --- source/app/models/main.py | 52 ++++++++++++++++++++++++++++++++++----- 1 file changed, 46 insertions(+), 6 deletions(-) diff --git a/source/app/models/main.py b/source/app/models/main.py index d9f1b14..f151b84 100644 --- a/source/app/models/main.py +++ b/source/app/models/main.py @@ -338,6 +338,16 @@ class TipoMovimientoAlmacen(BaseModel): return self.nombre +class Sucursales(BaseModel): + nombre = TextField(default='') + direccion = TextField(default='') + serie_facturas = TextField(default='') + serie_tickets = TextField(default='') + + class Meta: + order_by = ('nombre',) + + class Usuarios(BaseModel): usuario = TextField(unique=True) nombre = TextField(default='') @@ -349,6 +359,7 @@ class Usuarios(BaseModel): es_activo = BooleanField(default=True) fecha_ingreso = DateTimeField(default=util.now) ultimo_ingreso = DateTimeField(null=True) + sucursal = ForeignKeyField(Sucursales, null=True) def __str__(self): t = '{} {} ({})' @@ -4414,8 +4425,40 @@ def _crear_tablas(rfc): return True -def migrate_tables(): - connect() +def _migrate_tables(): + from playhouse.migrate import PostgresqlMigrator, migrate + + rfc = input('Introduce el RFC: ').strip().upper() + if not rfc: + msg = 'El RFC es requerido' + log.error(msg) + return + + args = util.get_con(rfc) + if not args: + return + + conectar(args) + + tablas = [Sucursales] + log.info('Creando nuevas tablas...') + database_proxy.create_tables(tablas, True) + log.info('Tablas creadas correctamente...') + + log.info('Iniciando migraciĆ³n de tablas...') + migrations = [] + migrator = PostgresqlMigrator(database_proxy) + + sucursal = ForeignKeyField(Sucursales, null=True, to_field=Sucursales.id) + columns = [c.name for c in database_proxy.get_columns('usuarios')] + if not 'sucursal_id' in columns: + migrations.append( + migrator.add_column('usuarios', 'sucursal_id', sucursal)) + + if migrations: + with database_proxy.atomic() as txn: + migrate(*migrations) + log.info('Tablas migradas correctamente...') return @@ -5089,9 +5132,6 @@ def _test(): conectar(args) - rows = Categorias.select().where( - Categorias.categoria=='Productos', Categorias.padre.is_null(True)).exists() - print (rows) return @@ -5141,7 +5181,7 @@ def main(iniciar_bd, migrar_bd, nuevo_superusuario, cambiar_contraseƱa, rfc, sys.exit(0) if opt['migrar_bd']: - migrate_tables() + _migrate_tables() sys.exit(0) if opt['nuevo_superusuario']: