Base de datos por consola

29 views
Skip to first unread message

Ivana O.

unread,
Mar 18, 2014, 3:01:20 PM3/18/14
to web2py-...@googlegroups.com
Buenas tardes!:

Espero me entiendan, tengo una aplicación montada en otro servidor, al cual no tengo acceso a la aplicacion de "administración", los cambios los debo realizar por consola.. Esta vez me toco modificar dos validaciones de dos campos de la BD, no me esta aplicando el cambio sobre mi formulario. Existe algun comando o modo de sincronizar la BD? el cambio es solo en db.py que agregue una nueva validación.

Espero me ayuden gracias!

Marco Mansilla

unread,
Mar 18, 2014, 3:36:01 PM3/18/14
to web2py-...@googlegroups.com
El Tue, 18 Mar 2014 12:01:20 -0700 (PDT)
"Ivana O." <emi.c...@gmail.com> escribió:
Sip, lo tenes que hacer en la declaracion del modelo correspondiente
que es donde van los validadores...

Si usas un validador de la DB, es probable que haga la validacion luego
de enviar los datos, asi que es probable que luego recibas un error
como respuesta, como es probable que no. Los validadores en el modelo,
procesan la informacion de los campos antes de ser enviados a la DB.

Saludos.

Si tenes acceso ssh al servidor puedes modificar los archivos que
hagan falta sin necesidad de recurrir al panel de administracion.

Saludos.

Marco.

IvanaEmi

unread,
Mar 18, 2014, 4:29:08 PM3/18/14
to web2py-...@googlegroups.com
Marco.. Gracias por contestar.. mi problema es que hice el cambio en db.py en dos campos específicos, todo por CONSOLA, le puse otro validador, luego ctrl+o guarde y ctrl+x sali!..
y reviso el archivo dp.py de mi aplicación los cambios están realizados, pero en el formulario de la aplicación me sigue funcionando el validador antiguo!
he leido que en django se hace algo como :
python manage.py syncdb
 por eso preguntaba si en web2py hay algun modo de sincronizar la BD.
 


Marco Mansilla

unread,
Mar 18, 2014, 5:12:53 PM3/18/14
to web2py-...@googlegroups.com
El Tue, 18 Mar 2014 13:29:08 -0700 (PDT)
IvanaEmi <ivana....@uccuyosl.edu.ar> escribió:
Si, en realidad no deberias... lo que puede que sea necesario es que
borres la cache de tu navegador o reinicies el servicio del servidor
web (apache, gnix, tornado, etc...), con eso deberia salir andando.

Por que si solo hiciste cambios sobre los validadores deberia ser
suficiente, si es hiciste cambios sobre los modelos vas a necesitar
cambiar las opciones migrate y fake_migrate en el string de conexion de
la db.

Saludos.

Marco Mansilla

unread,
Mar 18, 2014, 5:20:18 PM3/18/14
to web2py-...@googlegroups.com
El Tue, 18 Mar 2014 13:29:08 -0700 (PDT)
IvanaEmi <ivana....@uccuyosl.edu.ar> escribió:


> validador, luego ctrl+o guarde y ctrl+x sali!..

Ahora que veo esto, verifica que los cambios se hayan escrito en db.py
y no en db.py.tmp, por que nano suele hacer eso, si hiciste los cambios
por consola y mencionas esa combinacion de teclas asumo que utilizaste
nano...

Saludos.

IvanaEmi

unread,
Mar 18, 2014, 5:44:07 PM3/18/14
to web2py-...@googlegroups.com
Actualize el apache y nada!.. revise esto ultimo y no tengo ni el archivo db.py.tmp los datos estan guardados correctamente!.. pero me parece que modifique el modelo xq yo entre en web2py> applications> miapp> models > db.py

"cambiar las opciones migrate y fake_migrate en el string de conexion de la db" esto puede ocacionar algun cambio?? tengo miedo de perder conexion a mi BD o los datos ya que esta siendo usada en este momento y cargandose datos constantemente.

Gracias

IvanaEmi

unread,
Mar 18, 2014, 6:01:50 PM3/18/14
to web2py-...@googlegroups.com
Uso:

form = SOLIDFORM(db.tabla, fields=fields,submit_button=T(' SIGUIENTE ')) 

Y los validadores los tengo en la ruta que te indique:
db.tabla.caract_Tel.requires = IS_INT_IN_RANGE(1000, 99999, error_message=T('Ingrese sólo la característica'))
db.tabla.caract_Cel.requires = IS_INT_IN_RANGE(1000, 99999, error_message=T('Ingrese sólo la característica'))

Antes esos campos decían que solo no fueran vacíos, pero al tratarse de que son de tipo ' integer ' ya poniendo 10 nros me tiraba error.!!..

Lo que me parece raro que yo tengo un web2py como modo de administración en mi pc aplico los cambios y se ven perfectos!.. por consola no!..inclusive cambie en el controlador (del servidor al que me conecto de modo ssh) ese submit_button=T(' SIGUIENTE ') por un GUARDAR y tampoco me aplico el cambio :(



El martes, 18 de marzo de 2014 16:01:20 UTC-3, Ivana O. escribió:

Federico Ferraro

unread,
Mar 18, 2014, 6:24:50 PM3/18/14
to web2py-...@googlegroups.com
Hola , a veces el interprete compila el código archivos *.pyc o *.pyo y se ejecutan estos en vez de la nueva versión . 
Baja el apache y borra los archivos en applications/app/models/db.pyc  ... 
Vuelve a levantar el webserver..
Por consola prueba ver el archivo modificado con:
cat applications/app/models/db.py 

Fíjate si los cambios están ahí .. 

Utiliza vi como editor ..

Slds ...


Slds... 

--
Has recibido este mensaje porque estás suscrito al grupo "web2py-usuarios" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un mensaje de correo a web2py-usuari...@googlegroups.com.

Para acceder a más opciones, visita https://groups.google.com/d/optout.



--
--
Federico Ferraro
Usuario Linux : 482533.
--

Marco Mansilla

unread,
Mar 18, 2014, 6:25:06 PM3/18/14
to web2py-...@googlegroups.com
El Tue, 18 Mar 2014 15:01:50 -0700 (PDT)
IvanaEmi <ivana....@uccuyosl.edu.ar> escribió:
tenes declarados los validadores?

if form.accepts(request.vars, session):
blah blah
redirect(URL('somewhere'))
else:
algo mas

o form.process().accepted:
blah blah blah

....

IvanaEmi

unread,
Mar 18, 2014, 6:31:50 PM3/18/14
to web2py-...@googlegroups.com
if form.accepts(request.vars, session):
        response.flash = 'El formulario se ha enviado correctamente'    
        redirect(URL('generoparte2')
    elif form.errors:
        response.flash = 'Error'

    if form_factory.accepts(request.vars, session, formname='factory'):
        response.flash = 'El formulario se ha enviado correctamente'
        redirect(URL('index'))
    
    style = STYLE("""input[type="text"], textarea {width:100%; max-height: 50px;}
                     .w2p_fw {padding-right: 10px; max-width:200px;}
                     """)
    return dict(form=DIV(style, form))

Revise cat applications/app/models/db.py Los cambios estan Aplicados
Los validadores estan todos en el db.py

 

El martes, 18 de marzo de 2014 16:01:20 UTC-3, Ivana O. escribió:

IvanaEmi

unread,
Mar 18, 2014, 7:34:08 PM3/18/14
to web2py-...@googlegroups.com
Me explicarían en todo caso como funciona "migrate y fake_migrate", lo tengo que aplicar a la tabla o la BD?.. estuve leyendo en el libro pero no logro darme cuenta con mi caso, porque yo no quiero agregar campos sino que cambiar unos validadores!.. No entiendo porque en el panel de administración de mi otro web2py se aplican al toque y por consola es distinto y no cambia.

Federico Ferraro

unread,
Mar 18, 2014, 8:23:52 PM3/18/14
to web2py-...@googlegroups.com
migrate y fake_migrate , según entiendo es para cuando cambias un campo del modelo . 

Podrias hacer un tunel ssh desde tu equipo si tiene linux de la siguiente forma :

desde tu consola :
ssh -L 8000:localhost:{puerto_de_tu_server_web} usuario@{ip_de_tu_server}

te pide contraseña.. 

Luego abre el navegador en :

Prueba modificarlo desde ahí ..

Slds ... 
 



El 18 de marzo de 2014, 20:34, IvanaEmi <ivana....@uccuyosl.edu.ar> escribió:
Me explicarían en todo caso como funciona "migrate y fake_migrate", lo tengo que aplicar a la tabla o la BD?.. estuve leyendo en el libro pero no logro darme cuenta con mi caso, porque yo no quiero agregar campos sino que cambiar unos validadores!.. No entiendo porque en el panel de administración de mi otro web2py se aplican al toque y por consola es distinto y no cambia.

--
Has recibido este mensaje porque estás suscrito al grupo "web2py-usuarios" de Grupos de Google.
Para anular tu suscripción a este grupo y dejar de recibir sus mensajes, envía un mensaje a web2py-usuari...@googlegroups.com.

Para acceder a más opciones, visita https://groups.google.com/d/optout.

samuel bonill

unread,
Mar 18, 2014, 9:57:20 PM3/18/14
to web2py-...@googlegroups.com
si puedes usar la consola de tu servdor remotamente (SSH) y es linux, pudes usar el editor de texto por consola "nano", solo entra a la carpeta donde tienes tu aplicacion y tus modelos, luego edita el archivo db.py con :

nano db.py



Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un mensaje de correo a web2py-usuari...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages