La definición de la estructura de la tabla

FacturaScripts utiliza archivos XML para definir la estructura de las tablas de la base de datos. El núcleo del sistema se encarga de revisar estas tablas para:

  • Crear la tabla si no existe.
  • Verificar que la tabla tenga todas las columnas necesarias y crearlas en caso de faltar alguna.
  • No realizar ninguna acción si la tabla contiene columnas adicionales a las definidas en el XML.

Los archivos XML deben ubicarse en la carpeta Table de cada plugin, y cada archivo debe nombrarse exactamente igual que la tabla correspondiente.

Ejemplo: projects.xml

<?xml version="1.0" encoding="UTF-8"?>
<table>
    <column>
        <name>name</name>
        <type>character varying(100)</type>
        <null>NO</null>
    </column>
    <column>
        <name>codproject</name>
        <type>character varying(8)</type>
        <null>NO</null>
    </column>
    <constraint>
        <name>projects_pkey</name>
        <type>PRIMARY KEY (codproject)</type>
    </constraint>
</table>

Cada etiqueta column representa una columna de la tabla y puede incluir las siguientes subetiquetas:

  • name: Nombre de la columna. Se recomienda usar solo minúsculas para evitar conflictos.
  • type: Tipo de dato que almacenará la columna.
  • null: Indica si la columna admite valores nulos: YES para admitir, NO para no admitir. Si esta etiqueta se omite, se asume YES.
  • default: Valor por defecto a asignar cuando no se proporciona uno, especialmente útil al agregar nuevas columnas a tablas con registros preexistentes. Recuerda que para la operación diaria, los valores por defecto deben implementarse en el método clear() del modelo, no en el XML.

Nombres Reservados

Evita usar los siguientes nombres para columnas, ya que están reservados:

  • action
  • activetab
  • code

Tipos de Datos Soportados

FacturaScripts fue originalmente desarrollado para PostgreSQL, por lo que la mayoría de los nombres de tipos de datos corresponden a este sistema. Algunos ejemplos son:

  • serial: Entero autoincrementable, recomendado para claves primarias numéricas.
  • integer: Entero convencional.
  • double precision: Números con decimales.
  • boolean: Valores lógicos: true o false.
  • character varying(100): Texto de longitud variable, hasta 100 caracteres. Puedes modificar el número para otros rangos.
  • text: Texto extensible (hasta 4000 caracteres).
  • date: Fechas.
  • time: Horas.
  • timestamp: Fecha y hora.

Definición de Restricciones: Clave Primaria, Claves Foráneas, etc.

Las restricciones, como claves primarias y foráneas, se definen usando etiquetas constraint. Cada restricción debe tener un nombre único, lo que permite al sistema verificar su existencia en la tabla:

  • Si la restricción no se encuentra, se crea.
  • Si ya existe, no se realiza ninguna acción.
  • Si se cambia el nombre de la restricción, se elimina la existente y se crea una nueva.

Ejemplo de Clave Foránea

<constraint>
    <name>ca_albaranesprov_series</name>
    <type>FOREIGN KEY (codserie) REFERENCES series (codserie) ON DELETE RESTRICT ON UPDATE CASCADE</type>
</constraint>

En este ejemplo se define que:

  • La columna codserie de la tabla actual se relaciona con la columna codserie de la tabla series.
  • Se restringe la eliminación en la tabla series si existe una dependencia.
  • Las actualizaciones en la tabla series se propagan a la tabla actual.

Ejemplo de Restricción Única

<constraint>
    <name>uniq_codigo_albaranesprov</name>
    <type>UNIQUE (codigo, idempresa)</type>
</constraint>

Este ejemplo asegura que la combinación de codigo e idempresa sea única en la tabla.

¿No ves los cambios en la base de datos?

Durante el desarrollo puede ocurrir que la tabla no se cree o que los cambios realizados en el XML no se reflejen en la base de datos. Para solucionarlo, sigue estos pasos:

  1. Ve al menú Administrador > Plugins y pulsa el botón Reconstruir.
  2. Instancia el modelo correspondiente (por ejemplo, new FacturaCliente()).

Recuerda que FacturaScripts crea las tablas que no existen al instanciar el modelo. Además, los cambios en el XML no se aplican hasta que se borre la caché, ya que el sistema utiliza una caché para evitar comprobaciones constantes. Para forzar la aplicación de las modificaciones, es necesaria la reconstrucción mencionada.

Cookies
Usamos cookies en nuestro sitio web para brindarte la experiencia más relevante recordando tus preferencias y visitas repetidas. Al hacer clic en "Aceptar", aceptas el uso de TODAS las cookies necesarias.
Copyright (c) 2013-2025 FacturaScripts
0.40796s

Soporte