Base, Firebird y ORM

Discute sobre las herramientas de la base de datos
Responder
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Base, Firebird y ORM

Mensaje por mauricio »

Hola a todos...

Como todos sabemos, Firebird a partir de LibreOffice 6.3 es al nuevo motor de base de datos de facto. Tarde o temprano tendremos que migrar todo a este motor o cualquier nuevo desarrollo "debería" usarlo de forma predeterminada.

Casi cualquier lenguaje moderno, tiene algún manejador de bases de datos de modos que no tengamos (casi) que tocar una línea de SQL. A esta herramienta se llama Object-relational mapping u ORM, y la mayoría son una maravilla. Por supuesto, en Python hay varios muy buenos, pero como nos gustan las cosas sencillas, yo uso que no requiere ninguna dependencia y que es extensible, es decir, que se puede adaptar a otras base de datos, que es la prueba de concepto que hice y ha funcionado de maravilla.

Una prueba de concepto, con un código como el siguiente:

Código: Seleccionar todo

import uno
import easymacro as app

from peewee import *
from lobase_ext import LOBaseDatabase


path_db = '/home/mau/people.odb'
db_name = 'people'
db = LOBaseDatabase(db_name)


class BaseModel(Model):
    class Meta:
        database = db


class Person(BaseModel):
    name = CharField()
    last_name = CharField()


def main():
    if not app.exists_path(path_db):
        obj = app.new_db(path_db)
    db.connect()
    db.create_tables([Person], safe=False)

    p = Person(name='Teresa', last_name='Salgueiro')
    p.save()

    Person.insert(name='Naomi', last_name='Watts').execute()

    people = [
        {'name': 'Sofia', 'last_name': 'Loren'},
        {'name': 'Soledad', 'last_name': 'Villamil'},
        {'name': 'Irene', 'last_name': 'Azuela'},
    ]
    for p in people:
        Person.insert(**p).execute()

    return
Hemos creado tanto la tabla nueva con todos sus campos necesarios, y hemos insertado cinco nuevos registros. Como pueden ver en la imagen, ha funcionado correctamente.
image.png
image.png (36.53 KiB) Visto 7596 veces
De aquí al infinito. :lol:

P.D. No intenten copiar y ejecutar este código, requiere su explicación, que documentaré más adelante.
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Base, Firebird y ORM

Mensaje por mauricio »

Lo más interesante, es como el ORM te genera la cadena SQL de forma correcta:

Código: Seleccionar todo

CREATE TABLE "person" ("id" INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY NOT NULL, "name" VARCHAR(255) NOT NULL, "last_name" VARCHAR(255) NOT NULL)
INSERT INTO "person" ("name", "last_name") VALUES (?, ?)
INSERT INTO "person" ("name", "last_name") VALUES (?, ?)
INSERT INTO "person" ("name", "last_name") VALUES (?, ?)
INSERT INTO "person" ("name", "last_name") VALUES (?, ?)
INSERT INTO "person" ("name", "last_name") VALUES (?, ?)
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Longi
Mensajes: 804
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

Re: Base, Firebird y ORM

Mensaje por Longi »

Buenas!
mauricio escribió: yo uso que no requiere ninguna dependencia y que es extensible, es decir, que se puede adaptar a otras base de datos, que es la prueba de concepto que hice y ha funcionado de maravilla..
¿Esto qué quiere decir, que se podrán generar bases de datos con distintos motores? (reivindicación que hicimos en la reunión de Valencia).

Muchas gracias y un saludo! ;)
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Base, Firebird y ORM

Mensaje por mauricio »

Claro, de hecho, la librería no tiene soporte para Base/Firebird, que es la adaptación que estoy haciendo, pero ya tiene soporte para MySQL/MariaDB, Sqlite, y mi favorita de todas las favoritas Postgres... ¿tienes alguna que necesites?

Manejar bases de datos no es trivial, hacer drivers para conectarse y manejarlas, lo es menos, pero todo es abarcable por mortales como uno. :)

Un abrazo
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Longi
Mensajes: 804
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

Re: Base, Firebird y ORM

Mensaje por Longi »

Buenas!

No estaba pensando en mis necesidades, las cuales cambiarán según vaya profundizando en el aprendizaje, y por la velocidad que llevo, creo que mis necesidades variarán dentro de muuuuuuucho tiempo.... :lol: :lol: :lol:
Estaba pensando en las necesidades de la suite, ya que para entrar en el mundo empresarial de forma un poco 'asentada' creo que necesita mover una base de datos multipuesto con agilidad y fiabilidad.
Por ahora se ha apostado en Libre por Firebird (también monopuesto), y la he utilizado realmente poco, aunque parece que comentan que mejoró la estabilidad, pero necesita de complementos para ser multipuesto, con lo que no deja de ser un juguete doméstico.
Si podemos variar el motor de la base que se tiene 'de oficio' por otro, y podemos manejarlo para hacer bases desde 0, como si fuese Firebird, el avance para la suite para entrar en el mundo digamos...'serio' podría ser expectacular.
Habría que trabajar (por parte de la gente de LOO o AOO, o ambos) en la manera de mejorar la velocidad de los procesos, ya que todo parece basarse en ResultSets que hay que ir leyendo línea por línea.
Supongo que estas mejoras son de la suite y no corresponde al motor de la base de datos a la que se haya enganchado uno.
¿No sería posible trabajar algunos procesos en forma de matrices?, por ejemplo al pasar una tabla de base a calc, lo cual sería instantáneo.
Me tengo fijado que los filtros en base van como un tiro. Te filtra los resultados en una tabla de 50.000 registros en décimas de segundo, mientras que si haces una búsqueda te eternizas, por ejemplo.(¿no se podría aplicar la tecnología de los filtros para las consultas?)
Estos 'detallitos' y la exigencia de tener que hacer todo con macros (lo cual ahora no me supone un obstáculo insalvable a día de hoy), hace que no haya demasiados seguidores tanto de base como de la suite en general.
En definitiva!, yo no voy a pedir nada a los Reyes Magos como necesidad particular, pero sí sugerir a Papá Noel (Mauricio) que si se consiguiese manejar MySQL y Postgress, además de Firebird en las condiciones actuales, el espectro de acción sería enorme.
Muchas gracias por los desarrollos y un saludo! ;) :bravo:
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Base, Firebird y ORM

Mensaje por mauricio »

Para serte sincero, me interesan más las necesidades de mis amigos como tu, que del mundo empresarial, para ese mundo, un alto porcentaje ya esta cubierto, muy bien con gran cantidad de soluciones abiertas y cerradas.

Con la librería que estoy usando [1] es una maravilla, pero requiere, ademas, los drivers respectivos para cada motor de base de datos, encontrar una librería "puro" Python para que funciona en cualquier versión de LibreOffice (OpenOffice lo siento, mientras no migre a Python3 poco se puede hacer) no es tarea sencilla, pero es alcanzable.

Hacer lo que quieres: "¿No sería posible trabajar algunos procesos en forma de matrices?, por ejemplo al pasar una tabla de base a calc, lo cual sería instantáneo.", es viable y factible en este momento, de hecho, en mi versión anterior de EasyDev iba por ese camino, si me ayudas a depurarlo, podemos hacerlo en relativamente poco tiempo.

Un abrazo

[1] https://github.com/coleifer/peewee
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Base, Firebird y ORM

Mensaje por mauricio »

He terminado de mapear los principales tipos de datos, con el siguiente código:

Código: Seleccionar todo

import uno
import easymacro as app

from peewee import *
from peewee.lobase_ext import (LOBaseDatabase,
    BaseDateField, BaseDateTimeField, BaseBooleanField)


path_db = '/home/mau/pruebas.odb'
db_name = 'pruebas'
db = LOBaseDatabase(db_name)


class BaseModel(Model):
    class Meta:
        database = db


class Campos(BaseModel):
    id = IdentityField()
    texto = CharField()
    entero = IntegerField(default=0)
    flotante = FloatField(default=0.0)
    booleano = BaseBooleanField(default=False)
    fecha = BaseDateField(null=True)
    fechatiempo = BaseDateTimeField(default=app.now())


@app.catch_exception
def main():
    if not app.exists_path(path_db):
        obj = app.new_db(path_db)
    db.connect()
    db.create_tables([Campos])

    valores = dict(
        texto='Texto',
        entero=10,
        flotante=1000000,
        booleano=True,
        fecha=app.today(),
    )
    Campos.insert(**valores).execute()

    db.close()

    return
Se genera la tabla de forma correcta...
foro1.png
foro1.png (36.92 KiB) Visto 7556 veces
noten como el ID se agrega de forma automática, y la fechatiempo al tener un valor predeterminado, también.
foro2.png
De aquí al infinito... :lol:
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Base, Firebird y ORM

Mensaje por mauricio »

Longi escribió:Si podemos variar el motor de la base que se tiene 'de oficio' por otro, y podemos manejarlo para hacer bases desde 0, como si fuese Firebird,
He cambiado el motor de base de datos por Postgres, y usando "casi" el mismo código, hemos creado la tabla con sus datos:

Código: Seleccionar todo

db_name = 'test'
user = 'valedor'
contra = 'letmein'
db = PostgresqlDatabase(db_name, user=user, password=contra)


class BaseModel(Model):
    class Meta:
        database = db

class Campos(BaseModel):
    texto = CharField()
    entero = IntegerField(default=0)
    flotante = FloatField(default=0.0)
    booleano = BooleanField(default=False)
    fecha = DateField(null=True)
    fechatiempo = DateTimeField(default=app.now())


def add_table():
    db.connect()
    db.create_tables([Campos])

    valores = dict(
        texto='Texto',
        entero=10,
        flotante=1000000,
        booleano=True,
        fecha=app.today(),
    )
    Campos.insert(**valores).execute()
    db.close()

    return
La tabla creada:

Código: Seleccionar todo

test=#  \d
              List of relations
 Schema |     Name      |   Type   |  Owner  
--------+---------------+----------+---------
 public | campos        | table    | valedor
 public | campos_id_seq | sequence | valedor
(2 rows)

test=#  \d campos
                                         Table "public.campos"
   Column    |            Type             | Collation | Nullable |              Default      
         
-------------+-----------------------------+-----------+----------+---------------------------
---------
 id          | integer                     |           | not null | nextval('campos_id_seq'::r
egclass)
 texto       | character varying(255)      |           | not null | 
 entero      | integer                     |           | not null | 
 flotante    | real                        |           | not null | 
 booleano    | boolean                     |           | not null | 
 fecha       | date                        |           |          | 
 fechatiempo | timestamp without time zone |           | not null | 
Indexes:
    "campos_pkey" PRIMARY KEY, btree (id)

Con los datos correctos.

Código: Seleccionar todo

test=# select * from campos;
 id | texto | entero | flotante | booleano |   fecha    |        fechatiempo        
----+-------+--------+----------+----------+------------+---------------------------
  1 | Texto |     10 |    1e+06 | t        | 2019-10-01 | 2019-10-01 22:12:22.71047
(1 row)
El driver funciona bien sin dependencias en Linux, faltaría probarlo en Windows. :super:
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Longi
Mensajes: 804
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

Re: Base, Firebird y ORM

Mensaje por Longi »

Supongo que eres consciente de mi falta de nivel.
Hasta ahora solo me he manejado con basic en 'modo IKEA', es decir, teniendo piezas y poniéndolas de todas formas posibles hasta que encajan...., pero con la extensión tuya no sé como moverme o qué hacer para probar las cosas que has puesto en este hilo, y realmente quisiera poder hacerlo.
Ya me contarás.

Un saludo! ;)
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Base, Firebird y ORM

Mensaje por mauricio »

Soy totalmente consciente de que eres un "pillo" al tratar de engañarnos con tu nivel :) pero no funcionará :)

Vamos paso a paso, esto todavía no lo integro a la extensión, pero lo estará, también estoy empezando a grabar unos videos que aclaran muchas cosas.

Mi ambiciosa meta, es que casi cualquier, independientemente de su nivel, pueda automatizar sus tareas, desde las más sencillas hasta las más complejas, pero reitero, a mi me gusta avanzar, un paso a la vez.

Un abrazo
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Base, Firebird y ORM

Mensaje por mauricio »

¿Cual sería un proyecto, sencillo, pero funcional, es decir, que se pueda usar día a día, para mostrarles la versatilidad de estas herramientas?. Yo pensaba desde una libreta de contactos, un administrador de contraseñas, hasta la lista de gastos. ¿que opinan?
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
mriosv
Mensajes: 2334
Registrado: Sab Dic 27, 2008 1:12 am
Ubicación: Galiza (España)

Re: Base, Firebird y ORM

Mensaje por mriosv »

A ver que te parece,

un fichero para guardar macros, que tenga una macro para instalar la macro del registro seleccionado.
pk_id, fecha_creacion, fecha_revision, fecha_instalacion, autor, lenguage_prog, nombre, macro, ayuda, notas.
probablemente incluso sería fantástico que pudiera contener extensiones y que fueran instalables desde el mimo, aunque en este caso serían necesarios mas campos.

que también podría ser interesante con pequeños cambios o en el mismo, para guardar expresiones regulares / comodines.
pk_id, fecha_creacion, fecha_revision, fecha_copiado, autor, tipo_expresion, nombre, expresion, ayuda, notas.

así sería muy fácil compartirlos y para ir coleccionando de forma ordenada y organizada.
Puedes usar "Subir adjunto" en Respuesta rápida - Editor Completo - Pestaña Subir adjunto
Apache OpenOffice 4, LibreOffice (Win10x64)
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Base, Firebird y ORM

Mensaje por mauricio »

¿Un administrador de snippets?, me gusta +1
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Longi
Mensajes: 804
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

Re: Base, Firebird y ORM

Mensaje por Longi »

¡Caray!

Unos piensan y otros miramos los toros desde la barrera!

Eso tiene una pinta estupenda!
Ya nos contareis!

Un saludo! ;)
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Base, Firebird y ORM

Mensaje por RMG »

Yo apoyo esta propuesta. jejejej...
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
Avatar de Usuario
JoseJuan
Mensajes: 34
Registrado: Mié Abr 04, 2018 10:41 pm
Ubicación: Valencia (España)

Re: Base, Firebird y ORM

Mensaje por JoseJuan »

Hola a todos y perdón por la intromisión.
Buscando la solución a un problema de bbdd en Base he visto este mensaje, necesito que me ayudéis a entender la idea.
Por lo que veo, se ha utilizado una herramienta que maneja Python, para crear una base de datos y rellenarla con algunos registros. Voy bien?
Al parecer, la intención final es que desde el código Python se puedan crear y llenar de forma transparente las tablas de cualquier motor de bbdd. Es correcto?

Ahora viene mi pregunta, estáis utilizando Python para codificar las 'macros' de LibreOffice Base? Que pasó con Basic? Va a desparecer?

Nadie ha pensado en imitar a la competencia (Ms) en algo que la dio tan buen resultado, como integrar un generador de bbdd propio?
Aunque yo me inclino por aprovechar alguno ya creado, da igual cual sea, e integrarlo fuertemente para no necesitar ni una línea de código, ni drivers, ni parches ODBC, solo LibreBase y nada más.
Este es mi problema, no puedo instalar nada, así que tengo que apoyar mis formularios y consultas en tablas de Hoja de Cálculo, y ya podéis imaginar el resto.

Perdón por el rollo.

Saludos.
libreoffice 5.3.7.2 (x64) en Windows 7 / Libreoffice 6.4.2.2 en Windows 10
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Base, Firebird y ORM

Mensaje por mauricio »

JoseJuan escribió:se ha utilizado una herramienta que maneja Python, para crear una base de datos y rellenarla con algunos registros. Voy bien?
Esa "herramienta" no es más que más código Python, ergo, solo con Python se resuelve todo.
JoseJuan escribió:la intención final es que desde el código Python se puedan crear y llenar de forma transparente las tablas de cualquier motor de bbdd. Es correcto?
Así es, pero con varias librerías de Python, esto ya es el trabajo "normal", para este caso, solo lo integramos dentro de LibreOffice.
JoseJuan escribió:Ahora viene mi pregunta, estáis utilizando Python para codificar las 'macros' de LibreOffice Base? Que pasó con Basic? Va a desparecer?
Lo dudo, aunque yo no lo extrañaría. En mi experiencia, reitero lo de "mi experiencia", donde termina Basic, apenas empieza Python, esa y otras muchas razones, es por que se usa Python, y no Basic.
JoseJuan escribió:Nadie ha pensado en imitar a la competencia (Ms) en algo que la dio tan buen resultado, como integrar un generador de bbdd propio?
Si te refieres a Access, Base es la solución, La diferencia entre una y otra, se acorta, lentamente, pero se acorta cada día.
JoseJuan escribió:Aunque yo me inclino por aprovechar alguno ya creado, da igual cual sea, e integrarlo fuertemente para no necesitar ni una línea de código, ni drivers, ni parches ODBC, solo LibreBase y nada más.
La multitud de soluciones, nos indica que hay tantas diferentes necesidades como soluciones, es difícil, y a mi no me gusta, hacer herramientas que intenten hacer TODO.
JoseJuan escribió:Este es mi problema, no puedo instalar nada, así que tengo que apoyar mis formularios y consultas en tablas de Hoja de Cálculo, y ya podéis imaginar el resto.
Para usar Python, y estas herramientas, NO requieres instalar nada, es solo copiar una serie de archivos y se usa el Python integrado dentro de LibreOffice, todo, a nivel usuario.

Saludos

P.D. Por favor, si tienes inquietudes diferentes al tema de apertura de este tema, abre un nuevo tema.
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
JoseJuan
Mensajes: 34
Registrado: Mié Abr 04, 2018 10:41 pm
Ubicación: Valencia (España)

Re: Base, Firebird y ORM

Mensaje por JoseJuan »

Gracias Mauricio, sobretodo por tu paciencia para aclarar mis dudas.
Esa "herramienta" no es más que más código Python, ergo, solo con Python se resuelve todo.
Código Python ejecutado directamente en LibreOffice?

Permíteme que discrepe un poco de tu última frase, para usar Python puede que no necesite instalar nada, pero para usar una buen gestor de base de datos tengo que instalarlo de forma independiente, creo que LibreOffice no dispone de ninguno.

Perdón por desviarme del tema, no era mi intención. Seguiré buscando y si no encuentro abriré un nuevo hilo sobre gestores de base de datos.

Saludos.
libreoffice 5.3.7.2 (x64) en Windows 7 / Libreoffice 6.4.2.2 en Windows 10
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Base, Firebird y ORM

Mensaje por mauricio »

Son dos cosas diferentes...
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
dcapeletti
Mensajes: 4
Registrado: Mié Feb 26, 2014 7:49 pm

Re: Base, Firebird y ORM

Mensaje por dcapeletti »

mauricio escribió: Lun Sep 30, 2019 7:00 pm Hola a todos...

Como todos sabemos, Firebird a partir de LibreOffice 6.3 es al nuevo motor de base de datos de facto. Tarde o temprano tendremos que migrar todo a este motor o cualquier nuevo desarrollo "debería" usarlo de forma predeterminada.

Casi cualquier lenguaje moderno, tiene algún manejador de bases de datos de modos que no tengamos (casi) que tocar una línea de SQL. A esta herramienta se llama Object-relational mapping u ORM, y la mayoría son una maravilla. Por supuesto, en Python hay varios muy buenos, pero como nos gustan las cosas sencillas, yo uso que no requiere ninguna dependencia y que es extensible, es decir, que se puede adaptar a otras base de datos, que es la prueba de concepto que hice y ha funcionado de maravilla.

Una prueba de concepto, con un código como el siguiente:

Código: Seleccionar todo

import uno
import easymacro as app

from peewee import *
from lobase_ext import LOBaseDatabase


path_db = '/home/mau/people.odb'
db_name = 'people'
db = LOBaseDatabase(db_name)


class BaseModel(Model):
    class Meta:
        database = db


class Person(BaseModel):
    name = CharField()
    last_name = CharField()


def main():
    if not app.exists_path(path_db):
        obj = app.new_db(path_db)
    db.connect()
    db.create_tables([Person], safe=False)

    p = Person(name='Teresa', last_name='Salgueiro')
    p.save()

    Person.insert(name='Naomi', last_name='Watts').execute()

    people = [
        {'name': 'Sofia', 'last_name': 'Loren'},
        {'name': 'Soledad', 'last_name': 'Villamil'},
        {'name': 'Irene', 'last_name': 'Azuela'},
    ]
    for p in people:
        Person.insert(**p).execute()

    return
Hemos creado tanto la tabla nueva con todos sus campos necesarios, y hemos insertado cinco nuevos registros. Como pueden ver en la imagen, ha funcionado correctamente.

image.png

De aquí al infinito. :lol:

P.D. No intenten copiar y ejecutar este código, requiere su explicación, que documentaré más adelante.

Hola, he estado probando tu script en python3. Estoy usando Debian 11 y python3, pero tengo algunas dependencias que no logro instalar.

ImportError: No module named 'lobase_ext' (or 'lobase_ext.LOBaseDatabase' is unknown)
easymacro también me lanza error y no tengo ni idea de como instalar dicho paquete


Espero me puedas ayudar.

Saludos
Ubuntu 12.04 GNU/Linux con Libreoffice 4.2
Urxvt
Mensajes: 40
Registrado: Vie Mar 10, 2017 10:13 pm
Contactar:

Re: Base, Firebird y ORM

Mensaje por Urxvt »

Un saludo a todos! Ya llevaba varios meses sin entrar y me alegra volver por aquí.

Hace unos 6 años que creé una base de datos que todavía seguimos usando en la oficina, con la versión de LibreOffice 6.4 actualmente, tanto en Windows 10, como en Windows 7 (VBox) y en Debian 11. En las tres máquinas funciona perfectamente usando el antiguo motor: Hyper-SQL DB (si no recuerdo mal)...

El caso es que hace unos meses quiso probar la séptima versión y vi que todavía funcionaba... Viendo que ya van por la 7.5, ¿hasta qué punto es necesario hacer la migración si todo sigue funcionando? Igual puedo esperar a la 8. Pero hay muchos datos de clientes, trabajos y albaranes (decenas de miles de registros). De momento lo dejo así y no toco nada, pero me gusta saber vuestra opinión.

Por cierto Mauricio, tu guía me fue de gran ayuda, todavía la guardo y no tengo dudas de que la volveré a consultar.

PS. Lo que más me gustaría que hicieran en las nuevas versiones del Base es una GUI con pestañas (la gran solicitada en los foros: "tabbed-UI") xD
Debian 9 & i3wm + LibreOffice 5.2.7.2
Responder