# Legacy Database Reference

A complete structural reference for the four MS Access source databases this
platform migrates from, written so a machine **without Windows and without
access to the original files** can still understand exactly what data
exists, how it's shaped, and what's already known to be broken or excluded.

**This file covers Tables only.** For Queries, Forms, and Reports (which
turned out to hold significant business logic and workflow information not
visible from the table structure — e.g. multi-notice insurance renewal
cycles, the full statement/billing report inventory) see the companion
doc: [`LEGACY_DATABASES_OBJECTS.md`](LEGACY_DATABASES_OBJECTS.md).

## Why this file exists

The source data lives in Microsoft Access (`.accdb`/`.mdb`) files. That
format can only be read directly via the Microsoft Access Database Engine
ODBC driver, which is **Windows-only** — there is no equivalent driver for
Linux/macOS, and `pyodbc` on those platforms has nothing to connect to. In
practice this means:

- Anyone working from a non-Windows machine (or without the original files
  at hand) cannot open these databases themselves.
- This document is the substitute: it was generated by actually connecting
  to the real files on a Windows machine and reading every table's
  structure, so it can be trusted as an accurate snapshot rather than a
  guess.
- For the **data itself** (not just structure), work from the staged
  output instead — see [Working with this without Windows](#working-with-this-without-windows) below.

**Source of truth / how to regenerate:** `migration/catalog_schema.py`
connects to all three real database files and writes a full JSON catalog;
`migration/render_catalog_md.py` renders that JSON into the appendix at the
bottom of this file. Re-run both (on Windows, with the Access ODBC driver
installed) any time the source `.accdb`/`.mdb` files change:

```bash
cd migration
python catalog_schema.py --output catalog.json
python render_catalog_md.py catalog.json --output appendix.md
# then paste appendix.md content below the --- marker at the bottom of this file
```

## The four files at a glance

| File | Format | Size | Tables | Purpose |
|---|---|---|---|---|
| `UTILITIES.accdb` | Access 2007+ | ~538 MB | 52 (37 real, 15 scratch) | Property/utility-service management: customers, properties, per-service billing (water/electric/gas/cable/trust/property-tax), cash ledgers |
| `SEGUROS 16.mdb` | Access 2003 (Jet) | ~30 MB | 0 real | **Empty linked front-end shell.** All actual data lives in the `_be` file below — this file just holds forms/reports/queries pointing at it. |
| `SEGUROS 16_be.mdb` | Access 2003 (Jet) | ~882 MB | 64 (49 real, 15 scratch) | Insurance brokerage backend: customers, one table per line of business (fire, multi-risk/home, auto ×7 variants, commercial, driver's-license), claims, beneficiaries, adjusters |
| `SCOTHIA.mdb` | Access 2003 (Jet) | ~3 MB | 7 (4 real, 3 scratch) | The office's own Scotiabank checking-account register ("chequera") — not customer data, the company's operating bank book |

None of these files have any primary keys, foreign keys, or other
referential-integrity constraints defined at the database level —
**every relationship described below is inferred from column-naming
conventions**, not enforced by the source system. Treat every "this column
references that table" statement here as an educated inference to validate
during migration, not a guarantee.

## How the three real databases relate to each other

The same people are customers of both the utilities and insurance business
lines, and the two systems cross-reference each other in a few specific
places:

- **`UTILITIES.accdb: DATGRAL.[NUM id]`** ↔ **`SEGUROS 16_be.mdb: DATGRAL.[NUM UTIL]`** — the insurance customer table has a literal column pointing at the corresponding utilities customer's ID. This is the primary join key for building a unified customer record, and is almost certainly what the old PHP app's `customer_mapping` table was reverse-engineered from.
- **`SEGUROS 16_be.mdb: UTILSEG`** (1,582 rows, 3 columns) — looks like a dedicated utilities↔insurance customer cross-reference table, likely redundant with the `NUM UTIL` column above but worth reconciling against it rather than assuming either is complete on its own.
- **`SCOTHIA.mdb`** doesn't reference customers at all — it's the company's own bank book. It cross-references business lines instead, via `TABLA RAMODOS` (a "ramo"/line-of-business lookup that bank transactions presumably classify against through their `CONCEPTO`/`TIPO` free-text fields — there's no formal foreign key, so this mapping would need to be inferred from the text, not joined directly).
- Within `UTILITIES.accdb`, **`COBRO3`** (181 rows) has the exact same column shape as **`DATGRAL`** (1,172 rows) and looks like a filtered snapshot rather than a distinct entity — needs a diff before assuming it's redundant.
- Within `SEGUROS 16_be.mdb`, one flat table exists per insurance line of business — `INCENDIO` (fire), `MULT` (multi-risk/home), `M EMPR` (commercial property), seven auto-policy variants (`TABLA AUTOS`, `TABLA AUTOS AMPL`, `TABLA AUTOS AMPL R`, `TABLA AUTOS LIMIT`, `TABLA AUTOS LIMIT R`, `TABLA AUTOS RC R`, `MCA2`), and `LICENCIAS` (driver's-license insurance) — these all share the same repeated-column pattern (policy #, coverage dates, 4 hardcoded payment installments, premium breakdown, liquidation status) and are meant to unify into one `policies` table with a type discriminator in the target schema, not stay as separate tables.

## Known data-quality issues and extraction quirks

These were discovered by actually connecting to the files, not by inspection — anyone re-running extraction should expect to hit the same issues:

1. **`cursor.columns()` UTF-16 decode bug.** Reading column *metadata* (not data) via pyodbc's `cursor.columns()` call throws `'utf-16-le' codec can't decode bytes...` on a subset of tables whose column names contain certain accented/special characters (confirmed on `PROPANO`, `FALTANTES AGUA`, `TIT`, and others — see the appendix, tables with no `access_type` shown hit this). **Workaround:** read column names from `cursor.description` after a plain `SELECT *` instead, which doesn't hit the same code path. Implemented in `migration/extract.py::read_table`. The cost is losing the nice Access type name (`VARCHAR(255)`, `DOUBLE`, etc.) for those specific tables — the appendix falls back to showing the pandas-inferred dtype for them instead.
2. **One corrupted record in `MULT`.** A single row in `SEGUROS 16_be.mdb: MULT` is marked deleted at the Jet/ACE storage level but still enumerated by the driver — trying to read it throws `HY109 Record is deleted`. A plain `fetchall()` aborts the *entire table* on this error. **Workaround:** fetch rows one at a time in a try/except, skip and log the bad row, keep going. Recovers 763 of 764 rows. Confirmed the cursor correctly advances past the bad row rather than looping forever before trusting this for a full run. Implemented in `migration/extract.py::read_table`.
3. **No real primary keys anywhere.** Every ID-like column (`NUM id`, `NUMid`, `NUMER ID`, `IDISEG`, `IDIUT`, etc.) is a plain `DOUBLE` or `INTEGER` field with no uniqueness constraint enforced by the database. Duplicates are possible and should be checked for, not assumed absent.
4. **IDs stored as `DOUBLE`, not `INTEGER`.** Most legacy numeric ID columns are typed `DOUBLE(53)` even though every real value is a whole number — a legacy-of-Access-defaults quirk, not a meaningful design choice. Watch for floating-point representation issues when comparing/joining these values (e.g. `369.0` vs `369`) during migration.
5. **Column names are free-form**, including spaces, colons, and inconsistent casing (`NUM id`, `NUMid`, `NUMER ID`, `TRUST NUM:`, `A�O1` — that last one is a mis-decoded `AÑO1`, "year" in Spanish). `migration/extract.py::sanitize_column_name` normalizes these to safe identifiers for staging, while preserving the original name separately for traceability.
6. **Near-duplicate snapshot tables.** Several groups of tables in `UTILITIES.accdb` appear to be repeated exports/snapshots of the same underlying data across different periods or programs, not genuinely distinct datasets: the `EFECTIVO` / `EFECTIVO FM3` / `EFECTIVO_BACKUP` / `CHEQUE FM3` cash-ledger group, and the `FEE ANUAL` / `datos2` / `fee15` / `billing` recurring-billing group. These need a reconciliation/diff pass before deciding a union or de-dupe rule — don't assume a straight union is correct.

## Table exclusion rationale

Tables excluded from migration (see `migration/config.py` for the exact
per-source exclude lists) fall into three categories:

- **Confirmed empty (0 rows).** Nothing is lost by skipping these — mostly named like obvious scratch/working tables (`BANCO EDITOR`, `Errores de pegado`, `TABLE1`, `PARA BILLING*`, `FALTANTES *`, `TELEFONOS FECHAS`, `TRUSTHFEE`, and the `ID TABLA`/`TABLA LIQUIDA *` group in the insurance file).
- **Mail-merge document templates**, not data — the `* MENS`/`*MENSAJE` tables in `SEGUROS 16_be.mdb` (`AMPL MENS`, `IN MENS`, `LIC MENS`, `MCA2 MENS`, `ME MENS`, `MF MENS`, `RC MENSAJE`, `RC R MENS`) store letter/certificate templates as blobs. These get reimplemented as real PDF templates in the new app, not migrated as rows.
- **Materialized Access query results**, not source-of-truth data — `TODOSJC`, `TODOS`, `vigenta casa y auto unicos` in the insurance file look like saved report output. If the report itself is still needed, it should be rebuilt as a real query against the new schema, not migrated as a frozen snapshot.

A `TIT` table appears in both `UTILITIES.accdb` and `SEGUROS 16_be.mdb` with
1 row each and column names matching Access's default "Contacts" template
(`FirstName`, `LastName`, `Address`, `City`...) — almost certainly leftover
template residue from database creation, not real data. Excluded from both.

## Working with this without Windows

If you're on a non-Windows machine and need the actual **data**, not just
the structure documented here:

1. The real extraction has to happen on a Windows machine with the Access
   ODBC driver (`migration/load_staging.py`) — there's no way around that
   for the raw `.accdb`/`.mdb` files themselves.
2. That script's output — either Parquet files (`--output-dir`, portable,
   no database needed) or a live MySQL staging load (`--database-url`) — is
   what every other machine should work from. Parquet in particular is
   fully cross-platform and needs nothing but `pandas`/`pyarrow` to read.
3. This document tells you what to *expect* in that staged output (which
   tables, which columns, what's already known to be messy) without
   needing to touch the original Access files at all.

See `../PLAN.md` for the full target data model these tables migrate into,
and `../RESUME.md` for overall project state.

---

<!-- APPENDIX_MARKER: content below this line is generated by migration/catalog_schema.py + migration/render_catalog_md.py — do not hand-edit, regenerate instead. -->
## Appendix: full table catalog

Generated by `migration/catalog_schema.py` + `migration/render_catalog_md.py`. Regenerate after any change to the source files.

### UTILITIES.accdb

52 tables total — 37 included in migration, 15 excluded (scratch/template/report tables).

#### `AGUA EVALUA`

Rows: 1 | Columns: 2

| Column | Type | Nullable |
|---|---|---|
| `RUTAS` | VARCHAR(50) | no |
| `PERIODO` | VARCHAR(50) | no |

#### `CHEQUE FM3`

Rows: 157 | Columns: 9

| Column | Type | Nullable |
|---|---|---|
| `CL` | DOUBLE(53) | no |
| `FECHA` | DATETIME(19) | no |
| `FEE` | DOUBLE(53) | no |
| `TAX` | DOUBLE(53) | no |
| `MULTA` | DOUBLE(53) | no |
| `MONEDAS` | VARCHAR(50) | yes |
| `CONEPTO` | VARCHAR(100) | yes |
| `NUM CHEQUE` | DOUBLE(53) | no |
| `FOLIO` | COUNTER(10) | no |

#### `CLAVES`

Rows: 8 | Columns: 4

| Column | Type | Nullable |
|---|---|---|
| `BANCO` | VARCHAR(10) | no |
| `MANT` | VARCHAR(15) | yes |
| `PRZN` | VARCHAR(15) | yes |
| `ZFED T` | VARCHAR(15) | yes |

#### `COBRO3`

Rows: 181 | Columns: 25

| Column | Type | Nullable |
|---|---|---|
| `NUM id` | DOUBLE(53) | no |
| `NOMBRE` | VARCHAR(255) | yes |
| `DIRECCION` | VARCHAR(255) | yes |
| `COLONIA` | VARCHAR(255) | yes |
| `CIUDAD` | VARCHAR(255) | yes |
| `ESTADO` | VARCHAR(255) | yes |
| `PAIS` | VARCHAR(255) | yes |
| `LABEL` | VARCHAR(255) | yes |
| `TELUSA` | VARCHAR(255) | yes |
| `FAX` | VARCHAR(15) | yes |
| `OBSERVACIONES` | VARCHAR(255) | yes |
| `CODIGO` | VARCHAR(50) | yes |
| `TIPO` | DOUBLE(53) | yes |
| `CLIENTE TIPO` | VARCHAR(50) | yes |
| `FECHA NACIMIENTO` | DATETIME(19) | yes |
| `ESTADO DE CUENTA EN` | BIT(1) | no |
| `CONTROL FM3` | BIT(1) | no |
| `EMAIL` | VARCHAR(50) | yes |
| `CLIENTE DESDE` | DATETIME(19) | yes |
| `STATUS` | BIT(1) | no |
| `FEE` | DOUBLE(53) | no |
| `IDIUT` | DOUBLE(53) | no |
| `CEL` | VARCHAR(50) | yes |
| `ID SEG` | DOUBLE(53) | no |
| `ID FM` | DOUBLE(53) | no |

#### `DATGRAL`

Rows: 1172 | Columns: 25

| Column | Type | Nullable |
|---|---|---|
| `NUM id` | DOUBLE(53) | no |
| `NOMBRE` | VARCHAR(255) | yes |
| `DIRECCION` | VARCHAR(255) | yes |
| `COLONIA` | VARCHAR(255) | yes |
| `CIUDAD` | VARCHAR(255) | yes |
| `ESTADO` | VARCHAR(255) | yes |
| `PAIS` | VARCHAR(255) | yes |
| `LABEL` | VARCHAR(255) | yes |
| `TELUSA` | VARCHAR(255) | yes |
| `FAX` | VARCHAR(15) | yes |
| `OBSERVACIONES` | VARCHAR(255) | yes |
| `CODIGO` | VARCHAR(50) | yes |
| `TIPO` | DOUBLE(53) | yes |
| `CLIENTE TIPO` | VARCHAR(50) | yes |
| `FECHA NACIMIENTO` | DATETIME(19) | yes |
| `ESTADO DE CUENTA EN` | BIT(1) | no |
| `CONTROL FM3` | BIT(1) | no |
| `EMAIL` | VARCHAR(50) | yes |
| `CLIENTE DESDE` | DATETIME(19) | yes |
| `STATUS` | BIT(1) | no |
| `FEE` | DOUBLE(53) | yes |
| `IDIUT` | DOUBLE(53) | yes |
| `CEL` | VARCHAR(50) | yes |
| `ID SEG` | DOUBLE(53) | yes |
| `ID FM` | DOUBLE(53) | yes |

#### `DATMEX`

Rows: 1520 | Columns: 56

| Column | Type | Nullable |
|---|---|---|
| `NUMER ID` | DOUBLE(53) | no |
| `CASA` | DOUBLE(53) | no |
| `DIRECCION` | VARCHAR(255) | yes |
| `TELEFONO` | VARCHAR(50) | yes |
| `TELEFONO2` | VARCHAR(50) | yes |
| `TELEFONO3` | VARCHAR(50) | yes |
| `FV` | DOUBLE(53) | yes |
| `FV2` | DOUBLE(53) | yes |
| `FV3` | DOUBLE(53) | yes |
| `MANZANA` | VARCHAR(12) | yes |
| `LOTE` | VARCHAR(12) | yes |
| `AGUA` | DOUBLE(53) | yes |
| `DIAGUA` | DOUBLE(53) | yes |
| `GAS` | VARCHAR(12) | yes |
| `GAS VENCE` | DOUBLE(53) | yes |
| `ZONA` | VARCHAR(50) | yes |
| `CHECK` | VARCHAR(1) | yes |
| `CLAVE` | VARCHAR(50) | yes |
| `RUTA` | VARCHAR(50) | yes |
| `RUTA2` | VARCHAR(50) | yes |
| `RUTA3` | VARCHAR(50) | yes |
| `MEDIDOR` | VARCHAR(50) | yes |
| `MEDIDOR2` | VARCHAR(50) | yes |
| `MEDIDOR3` | VARCHAR(50) | yes |
| `LUZ TIPO` | VARCHAR(50) | yes |
| `BFEE` | DOUBLE(53) | yes |
| `CONSES` | VARCHAR(50) | yes |
| `BANCO` | VARCHAR(30) | yes |
| `VENCE1` | DATETIME(19) | yes |
| `VENCE2` | DATETIME(19) | yes |
| `MANT` | VARCHAR(15) | yes |
| `MANT$` | DOUBLE(53) | yes |
| `CIA CABLE` | VARCHAR(255) | yes |
| `DIA CABLE` | DOUBLE(53) | yes |
| `CABLE num` | VARCHAR(255) | yes |
| `PRZN` | VARCHAR(15) | yes |
| `PREDIAL` | DOUBLE(53) | yes |
| `ZFED` | DOUBLE(53) | yes |
| `FIANZA` | VARCHAR(50) | yes |
| `ZFED T` | VARCHAR(15) | yes |
| `TRUST NUM` | VARCHAR(50) | yes |
| `RPU` | DOUBLE(53) | yes |
| `RPU2` | DOUBLE(53) | yes |
| `RPU3` | DOUBLE(53) | yes |
| `TASA` | DOUBLE(53) | yes |
| `CABLE/SKY` | BIT(1) | no |
| `SERVICES` | LONGCHAR(1073741823) | yes |
| `ALARM SYSTEM` | VARCHAR(50) | yes |
| `TITULAR SERV` | BIT(1) | no |
| `VIGENTE` | BIT(1) | no |
| `ILUZ` | LONGBINARY(1073741823) | yes |
| `IAGUA` | LONGBINARY(1073741823) | yes |
| `IPREDIAL` | LONGBINARY(1073741823) | yes |
| `ITEL` | LONGBINARY(1073741823) | yes |
| `DOC 1` | LONGBINARY(1073741823) | yes |
| `DOC 2` | LONGBINARY(1073741823) | yes |

#### `DATOS FUTUROS`

Rows: 0 | Columns: 7

| Column | Type | Nullable |
|---|---|---|
| `NUMid` | DOUBLE(53) | — |
| `DATE` | DATETIME(19) | — |
| `REFER` | DOUBLE(53) | — |
| `PERIOD` | VARCHAR(255) | — |
| `TYPE OF TRX` | VARCHAR(255) | — |
| `CHARGECREDIT` | DOUBLE(53) | — |
| `CHEQUE` | VARCHAR(15) | — |

#### `DIRECCION`

Rows: 0 | Columns: 4

| Column | Type | Nullable |
|---|---|---|
| `ID` | INTEGER(10) | — |
| `HOME 1:` | VARCHAR(50) | — |
| `HOME 2:` | VARCHAR(50) | — |
| `HOME 3:` | VARCHAR(50) | — |

#### `DIRECCIONAWEB`

Rows: 1520 | Columns: 2

| Column | Type | Nullable |
|---|---|---|
| `ID` | DOUBLE(53) | no |
| `ADDRESS` | VARCHAR(50) | yes |

#### `EFECTIVO`

Rows: 13697 | Columns: 8

| Column | Type | Nullable |
|---|---|---|
| `CL` | SMALLINT(5) | no |
| `FECHA` | DATETIME(19) | yes |
| `MONTO` | CURRENCY(19) | yes |
| `MONEDAS` | VARCHAR(255) | yes |
| `CONEPTO` | VARCHAR(255) | yes |
| `F DEPOSITO` | DATETIME(19) | yes |
| `FOLIO` | COUNTER(10) | no |
| `ELABORO` | VARCHAR(255) | yes |

#### `EFECTIVO FM3`

Rows: 627 | Columns: 9

| Column | Type | Nullable |
|---|---|---|
| `CL` | DOUBLE(53) | no |
| `FECHA` | DATETIME(19) | no |
| `FEE` | DOUBLE(53) | yes |
| `TAX` | DOUBLE(53) | yes |
| `MULTA` | DOUBLE(53) | yes |
| `MONEDAS` | VARCHAR(50) | yes |
| `CONEPTO` | VARCHAR(100) | yes |
| `F DEPOSITO` | DATETIME(19) | yes |
| `FOLIO` | COUNTER(10) | no |

#### `EFECTIVO_BACKUP`

Rows: 12387 | Columns: 8

| Column | Type | Nullable |
|---|---|---|
| `CL` | DOUBLE(53) | no |
| `FECHA` | DATETIME(19) | yes |
| `MONTO` | DOUBLE(53) | yes |
| `MONEDAS` | VARCHAR(50) | yes |
| `CONEPTO` | VARCHAR(100) | yes |
| `F DEPOSITO` | DATETIME(19) | yes |
| `FOLIO` | COUNTER(10) | no |
| `ELABORO` | VARCHAR(50) | yes |

#### `FECHAIF`

Rows: 1 | Columns: 2

| Column | Type | Nullable |
|---|---|---|
| `FECHA INICIAL` | DATETIME(19) | no |
| `FECHA FINAL` | DATETIME(19) | no |

#### `FECHAS`

Rows: 1 | Columns: 2

| Column | Type | Nullable |
|---|---|---|
| `FECHA 1` | DATETIME(19) | no |
| `FECHA 2` | DATETIME(19) | no |

#### `FEE ANUAL`

Rows: 1082 | Columns: 11

| Column | Type | Nullable |
|---|---|---|
| `NUMid` | DOUBLE(53) | no |
| `DATE` | DATETIME(19) | no |
| `REFER` | VARCHAR(50) | yes |
| `PERIOD` | VARCHAR(255) | no |
| `TYPE OF TRX` | VARCHAR(255) | no |
| `CHARGECREDIT` | DOUBLE(53) | yes |
| `CHEQUE` | VARCHAR(15) | yes |
| `CAP` | DATETIME(19) | no |
| `per` | VARCHAR(50) | yes |
| `CONT` | COUNTER(10) | no |
| `NOPAGO` | BIT(1) | no |

#### `IVA 2015`

Rows: 911 | Columns: 8

| Column | Type | Nullable |
|---|---|---|
| `NUM id` | DOUBLE(53) | no |
| `CASA` | DOUBLE(53) | no |
| `NOMBRE` | VARCHAR(255) | yes |
| `DIRECCION` | VARCHAR(255) | yes |
| `FEE` | DOUBLE(53) | no |
| `VALORU` | DOUBLE(53) | no |
| `VALIVA` | DOUBLE(53) | no |
| `RECIBO` | COUNTER(10) | no |

#### `LUZ EVALUA`

Rows: 1 | Columns: 2

| Column | Type | Nullable |
|---|---|---|
| `RUTAS` | VARCHAR(50) | no |
| `PERIODO` | VARCHAR(50) | no |

#### `LUZSCAN`

Rows: 0 | Columns: 5

| Column | Type | Nullable |
|---|---|---|
| `ID` | DOUBLE(53) | — |
| `CASA` | DOUBLE(53) | — |
| `NOMBRE` | VARCHAR(50) | — |
| `RPUS` | VARCHAR(50) | — |
| `SALDO` | DOUBLE(53) | — |

#### `MAIL`

Rows: 84 | Columns: 1

| Column | Type | Nullable |
|---|---|---|
| `CLIENTE` | DOUBLE(53) | no |

#### `PARAPER`

Rows: 0 | Columns: 1

| Column | Type | Nullable |
|---|---|---|
| `per1` | VARCHAR(50) | — |

#### `PROFILE`

Rows: 1520 | Columns: 14

| Column | Type | Nullable |
|---|---|---|
| `NUMERID` | DOUBLE(53) | no |
| `CASA` | DOUBLE(53) | no |
| `DIRECCION` | VARCHAR(255) | yes |
| `PHONE1` | INTEGER(10) | no |
| `PHONEN` | VARCHAR(50) | yes |
| `WATER1` | INTEGER(10) | no |
| `GAS1` | INTEGER(10) | no |
| `FEDERALZONE` | INTEGER(10) | no |
| `PROPERTYTAXES` | INTEGER(10) | no |
| `ELECTRIC` | INTEGER(10) | no |
| `TRUST` | INTEGER(10) | no |
| `BANK` | VARCHAR(50) | yes |
| `CABLE/SKY` | BIT(1) | no |
| `SERVICES` | LONGCHAR(1073741823) | yes |

#### `PROPANO`

Rows: 0 | Columns: 24

| Column | Type | Nullable |
|---|---|---|
| `NUMid` | _(inferred: object)_ | — |
| `NOMBRE` | _(inferred: object)_ | — |
| `DIRECCION` | _(inferred: object)_ | — |
| `COLONIA` | _(inferred: object)_ | — |
| `CIUDAD` | _(inferred: object)_ | — |
| `ESTADO` | _(inferred: object)_ | — |
| `PAIS` | _(inferred: object)_ | — |
| `CODIGO` | _(inferred: object)_ | — |
| `EMAIL` | _(inferred: object)_ | — |
| `TELUSA` | _(inferred: object)_ | — |
| `FAX` | _(inferred: object)_ | — |
| `DATE` | _(inferred: object)_ | — |
| `REFER` | _(inferred: object)_ | — |
| `PERIOD` | _(inferred: object)_ | — |
| `TYPEOFTRX` | _(inferred: object)_ | — |
| `CHARGECREDIT` | _(inferred: object)_ | — |
| `MENSAJE` | _(inferred: object)_ | — |
| `fdecreacion` | _(inferred: object)_ | — |
| `PASSWD` | _(inferred: object)_ | — |
| `CLIENTEDESDE` | _(inferred: object)_ | — |
| `TIPODECAMBIO` | _(inferred: object)_ | — |
| `TIPO` | _(inferred: object)_ | — |
| `DIRECCIONMEX` | _(inferred: object)_ | — |
| `NOPAGO` | _(inferred: object)_ | — |

#### `RECIBONOCLIENT`

Rows: 1 | Columns: 4

| Column | Type | Nullable |
|---|---|---|
| `NOMBRE CLIENTE` | VARCHAR(50) | no |
| `CONCEPTO` | VARCHAR(200) | no |
| `CANTIDAD` | DOUBLE(53) | no |
| `MONEDAS` | VARCHAR(50) | no |

#### `RPUN`

Rows: 0 | Columns: 4

| Column | Type | Nullable |
|---|---|---|
| `NUMER ID` | INTEGER(10) | — |
| `NOMBRE` | VARCHAR(50) | — |
| `RPU1` | INTEGER(10) | — |
| `CH/CRED` | DOUBLE(53) | — |

#### `SHCP 5`

Rows: 0 | Columns: 12

| Column | Type | Nullable |
|---|---|---|
| `ID` | INTEGER(10) | — |
| `RFC` | VARCHAR(50) | — |
| `CURP` | VARCHAR(50) | — |
| `MES INICIO` | VARCHAR(50) | — |
| `AÑO INICIO` | VARCHAR(50) | — |
| `MES FINAL` | VARCHAR(50) | — |
| `AÑO FINAL` | VARCHAR(50) | — |
| `TOTAL DE DERECHOS` | DOUBLE(53) | — |
| `PARTE ACTUALIZADA` | DOUBLE(53) | — |
| `RECARGOS` | DOUBLE(53) | — |
| `MULTA` | DOUBLE(53) | — |
| `AJUSTE` | DOUBLE(53) | — |

#### `TEL EVALUA`

Rows: 1 | Columns: 2

| Column | Type | Nullable |
|---|---|---|
| `MES PAGO` | VARCHAR(50) | no |
| `FVT1` | DOUBLE(53) | no |

#### `TELEF`

Rows: 0 | Columns: 4

| Column | Type | Nullable |
|---|---|---|
| `ID` | DOUBLE(53) | — |
| `NOMBRE` | VARCHAR(50) | — |
| `TELE` | VARCHAR(50) | — |
| `SALDO` | DOUBLE(53) | — |

#### `TIPO CAMBIO`

Rows: 1 | Columns: 3

| Column | Type | Nullable |
|---|---|---|
| `TIPO DE CAMBIO` | _(inferred: float64)_ | no |
| `MENSAJE` | _(inferred: object)_ | no |
| `MENSAJE2` | _(inferred: object)_ | yes |

#### `TIPO HIST`

Rows: 2301 | Columns: 3

| Column | Type | Nullable |
|---|---|---|
| `TIPO DE CAMBIO` | DOUBLE(53) | no |
| `DATE` | DATETIME(19) | no |
| `HOUR` | DATETIME(19) | no |

#### `TRUSTVENCE`

Rows: 549 | Columns: 6

| Column | Type | Nullable |
|---|---|---|
| `NUMER ID` | DOUBLE(53) | no |
| `BANCO` | VARCHAR(30) | no |
| `BFEE` | DOUBLE(53) | yes |
| `VENCE1` | DATETIME(19) | yes |
| `VENCE2` | DATETIME(19) | yes |
| `TRUST NUM` | VARCHAR(50) | yes |

#### `TYPE OF TRX`

Rows: 79 | Columns: 2

| Column | Type | Nullable |
|---|---|---|
| `TYPE OF TRX` | VARCHAR(50) | no |
| `ESPAÑOL` | VARCHAR(50) | yes |

#### `datos2`

Rows: 16000 | Columns: 12

| Column | Type | Nullable |
|---|---|---|
| `NUMid` | DOUBLE(53) | no |
| `DATE` | DATETIME(19) | yes |
| `REFER` | VARCHAR(50) | yes |
| `PERIOD` | VARCHAR(255) | yes |
| `TYPE OF TRX` | VARCHAR(255) | yes |
| `CHARGECREDIT` | DOUBLE(53) | yes |
| `CHEQUE` | VARCHAR(15) | yes |
| `CAP` | DATETIME(19) | no |
| `per` | VARCHAR(50) | yes |
| `CONT` | COUNTER(10) | no |
| `NOPAGO` | BIT(1) | no |
| `DUE DATE` | VARCHAR(50) | yes |

#### `datosfreak`

Rows: 15981 | Columns: 26

| Column | Type | Nullable |
|---|---|---|
| `NUMid` | _(inferred: float64)_ | no |
| `NOMBRE` | _(inferred: object)_ | yes |
| `DIRECCION` | _(inferred: object)_ | yes |
| `COLONIA` | _(inferred: object)_ | yes |
| `CIUDAD` | _(inferred: object)_ | yes |
| `ESTADO` | _(inferred: object)_ | yes |
| `PAIS` | _(inferred: object)_ | yes |
| `CODIGO` | _(inferred: object)_ | yes |
| `EMAIL` | _(inferred: object)_ | yes |
| `TELUSA` | _(inferred: object)_ | yes |
| `FAX` | _(inferred: object)_ | yes |
| `CEL` | _(inferred: object)_ | yes |
| `DATE` | _(inferred: datetime64[ns])_ | yes |
| `REFER` | _(inferred: object)_ | yes |
| `PERIOD` | _(inferred: object)_ | yes |
| `TYPEOFTRX` | _(inferred: object)_ | yes |
| `CHARGECREDIT` | _(inferred: float64)_ | yes |
| `MENSAJE` | _(inferred: object)_ | no |
| `fdecreacion` | _(inferred: datetime64[ns])_ | no |
| `PASSWD` | _(inferred: object)_ | no |
| `CLIENTEDESDE` | _(inferred: datetime64[ns])_ | yes |
| `TIPODECAMBIO` | _(inferred: float64)_ | no |
| `TIPO` | _(inferred: float64)_ | yes |
| `DIRECCIONMEX` | _(inferred: object)_ | yes |
| `NOPAGO` | _(inferred: bool)_ | no |
| `FEE` | _(inferred: float64)_ | yes |

#### `datosfreak2`

Rows: 1520 | Columns: 2

| Column | Type | Nullable |
|---|---|---|
| `NUMid` | _(inferred: float64)_ | no |
| `DIRECCIONMEX` | _(inferred: object)_ | yes |

#### `fee15`

Rows: 1030 | Columns: 11

| Column | Type | Nullable |
|---|---|---|
| `NUMid` | DOUBLE(53) | no |
| `DATE` | DATETIME(19) | no |
| `REFER` | VARCHAR(50) | yes |
| `PERIOD` | VARCHAR(255) | no |
| `TYPE OF TRX` | VARCHAR(255) | no |
| `CHARGECREDIT` | DOUBLE(53) | no |
| `CHEQUE` | VARCHAR(15) | no |
| `CAP` | DATETIME(19) | no |
| `per` | VARCHAR(50) | yes |
| `CONT` | COUNTER(10) | no |
| `NOPAGO` | BIT(1) | no |

#### `pagos email`

Rows: 20 | Columns: 24

| Column | Type | Nullable |
|---|---|---|
| `NUMid` | _(inferred: float64)_ | no |
| `NOMBRE` | _(inferred: object)_ | no |
| `DIRECCION` | _(inferred: object)_ | yes |
| `COLONIA` | _(inferred: object)_ | yes |
| `CIUDAD` | _(inferred: object)_ | yes |
| `ESTADO` | _(inferred: object)_ | yes |
| `PAIS` | _(inferred: object)_ | yes |
| `CODIGO` | _(inferred: object)_ | yes |
| `EMAIL` | _(inferred: object)_ | yes |
| `TELUSA` | _(inferred: object)_ | yes |
| `FAX` | _(inferred: object)_ | yes |
| `DATE` | _(inferred: datetime64[ns])_ | no |
| `REFER` | _(inferred: object)_ | no |
| `PERIOD` | _(inferred: object)_ | yes |
| `TYPEOFTRX` | _(inferred: object)_ | no |
| `CHARGECREDIT` | _(inferred: float64)_ | no |
| `MENSAJE` | _(inferred: object)_ | no |
| `fdecreacion` | _(inferred: datetime64[ns])_ | no |
| `PASSWD` | _(inferred: object)_ | no |
| `CLIENTEDESDE` | _(inferred: datetime64[ns])_ | yes |
| `TIPODECAMBIO` | _(inferred: float64)_ | no |
| `TIPO` | _(inferred: float64)_ | yes |
| `DIRECCIONMEX` | _(inferred: object)_ | yes |
| `NOPAGO` | _(inferred: bool)_ | no |

#### `pagos todos`

Rows: 20 | Columns: 24

| Column | Type | Nullable |
|---|---|---|
| `NUMid` | _(inferred: float64)_ | no |
| `NOMBRE` | _(inferred: object)_ | no |
| `DIRECCION` | _(inferred: object)_ | yes |
| `COLONIA` | _(inferred: object)_ | yes |
| `CIUDAD` | _(inferred: object)_ | yes |
| `ESTADO` | _(inferred: object)_ | yes |
| `PAIS` | _(inferred: object)_ | yes |
| `CODIGO` | _(inferred: object)_ | yes |
| `EMAIL` | _(inferred: object)_ | yes |
| `TELUSA` | _(inferred: object)_ | yes |
| `FAX` | _(inferred: object)_ | yes |
| `DATE` | _(inferred: datetime64[ns])_ | no |
| `REFER` | _(inferred: object)_ | no |
| `PERIOD` | _(inferred: object)_ | yes |
| `TYPEOFTRX` | _(inferred: object)_ | no |
| `CHARGECREDIT` | _(inferred: float64)_ | no |
| `MENSAJE` | _(inferred: object)_ | no |
| `fdecreacion` | _(inferred: datetime64[ns])_ | no |
| `PASSWD` | _(inferred: object)_ | no |
| `CLIENTEDESDE` | _(inferred: datetime64[ns])_ | yes |
| `TIPODECAMBIO` | _(inferred: float64)_ | no |
| `TIPO` | _(inferred: float64)_ | yes |
| `DIRECCIONMEX` | _(inferred: object)_ | yes |
| `NOPAGO` | _(inferred: bool)_ | no |

#### Excluded tables

| Table | Rows |
|---|---|
| `BANCO EDITOR` | 0 |
| `Errores de pegado` | 1 |
| `FALTANTES AGUA` | 0 |
| `FALTANTES TEL` | 0 |
| `LUZ TODOS` | 0 |
| `PARA BILLING SIN` | 0 |
| `PARA BILLING1` | 0 |
| `PARA BILLING2` | 0 |
| `PARA EDO` | 0 |
| `TABLE1` | 13 |
| `TELEFONOS FECHAS` | 0 |
| `TIT` | 1 |
| `TRUSTHFEE` | 0 |
| `billing` | 0 |
| `faltantes luz` | 0 |

### SEGUROS 16_be.mdb

64 tables total — 41 included in migration, 23 excluded (scratch/template/report tables).

#### `AJUSTA`

Rows: 3 | Columns: 1

| Column | Type | Nullable |
|---|---|---|
| `AJUS` | VARCHAR(50) | no |

#### `AJUSTADORES`

Rows: 9 | Columns: 6

| Column | Type | Nullable |
|---|---|---|
| `ORDEN` | DOUBLE(53) | yes |
| `COMP` | VARCHAR(50) | yes |
| `CIUDAD` | VARCHAR(50) | yes |
| `NOMBRE` | VARCHAR(60) | yes |
| `TEL` | VARCHAR(50) | yes |
| `BEEPER` | VARCHAR(50) | yes |

#### `AJUSTADORESATLAS`

Rows: 8 | Columns: 6

| Column | Type | Nullable |
|---|---|---|
| `ORDEN` | DOUBLE(53) | no |
| `COMP` | VARCHAR(50) | no |
| `CIUDAD` | VARCHAR(50) | no |
| `NOMBRE` | VARCHAR(60) | no |
| `TEL` | VARCHAR(50) | yes |
| `BEEPER` | VARCHAR(50) | yes |

#### `ATLAS`

Rows: 2 | Columns: 3

| Column | Type | Nullable |
|---|---|---|
| `SEGURO` | VARCHAR(50) | no |
| `PNET` | DOUBLE(53) | no |
| `DPOLI` | DOUBLE(53) | no |

#### `BENEF`

Rows: 768 | Columns: 5

| Column | Type | Nullable |
|---|---|---|
| `BPOLIZA` | VARCHAR(255) | no |
| `BNOMBRE` | VARCHAR(255) | yes |
| `BDIRECCION` | VARCHAR(255) | yes |
| `BTEL` | VARCHAR(255) | yes |
| `BEMAIL` | VARCHAR(255) | yes |

#### `COMENTARIOS`

Rows: 1 | Columns: 6

| Column | Type | Nullable |
|---|---|---|
| `NUM` | COUNTER(10) | no |
| `EN` | VARCHAR(50) | no |
| `QUE` | VARCHAR(50) | no |
| `COMENTARIOS` | LONGCHAR(1073741823) | no |
| `FECHA` | DATETIME(19) | no |
| `OK` | BIT(1) | no |

#### `COMPAN`

Rows: 4 | Columns: 1

| Column | Type | Nullable |
|---|---|---|
| `COMPAÑIA` | VARCHAR(50) | no |

#### `CONTACTS`

Rows: 3 | Columns: 26

| Column | Type | Nullable |
|---|---|---|
| `ID` | COUNTER(10) | no |
| `COMPAÑIA` | VARCHAR(50) | no |
| `CARGO` | VARCHAR(50) | yes |
| `DEPARTAMENTO` | VARCHAR(50) | yes |
| `TITULO` | VARCHAR(50) | yes |
| `NOMBRES` | VARCHAR(50) | yes |
| `APELLIDOS` | VARCHAR(50) | yes |
| `CALLE Y NUM` | VARCHAR(50) | yes |
| `CIUDAD` | VARCHAR(50) | yes |
| `ESTADO` | VARCHAR(4) | yes |
| `CP` | VARCHAR(50) | yes |
| `REGION` | VARCHAR(50) | yes |
| `PAIS` | VARCHAR(50) | yes |
| `TEL TRABAJO1` | VARCHAR(30) | yes |
| `EXT1` | VARCHAR(20) | yes |
| `TEL TRABAJO2` | VARCHAR(30) | yes |
| `EXT2` | VARCHAR(20) | yes |
| `Tel Casa` | VARCHAR(30) | yes |
| `Celular` | VARCHAR(30) | yes |
| `Bipper` | VARCHAR(30) | yes |
| `Fax1` | VARCHAR(30) | yes |
| `Fax2` | VARCHAR(30) | yes |
| `Tel Emerg` | VARCHAR(30) | yes |
| `Email` | VARCHAR(50) | yes |
| `Cumpleaños` | DATETIME(19) | yes |
| `Notas` | LONGCHAR(1073741823) | yes |

#### `DATGRAL`

Rows: 1070 | Columns: 25

| Column | Type | Nullable |
|---|---|---|
| `NUM id` | _(inferred: float64)_ | no |
| `NUM UTIL` | _(inferred: float64)_ | yes |
| `NOMBRE` | _(inferred: object)_ | yes |
| `DIRECCION 1` | _(inferred: object)_ | yes |
| `DIRECCION 2` | _(inferred: object)_ | yes |
| `CIUDAD` | _(inferred: object)_ | yes |
| `ESTADO` | _(inferred: object)_ | yes |
| `CODIGO` | _(inferred: object)_ | yes |
| `PAIS` | _(inferred: object)_ | yes |
| `TELUSA` | _(inferred: object)_ | yes |
| `FAX` | _(inferred: object)_ | yes |
| `TELEMERGENCIA` | _(inferred: object)_ | yes |
| `CALLE Y NO` | _(inferred: object)_ | yes |
| `COL` | _(inferred: object)_ | yes |
| `CIUD` | _(inferred: object)_ | yes |
| `EDO` | _(inferred: object)_ | yes |
| `TEL` | _(inferred: object)_ | yes |
| `EmailAddress` | _(inferred: object)_ | yes |
| `FECHA NACIMIENTO` | _(inferred: datetime64[ns])_ | yes |
| `OBSERVACIONES` | _(inferred: object)_ | yes |
| `IDISEG` | _(inferred: float64)_ | yes |
| `NUM FM` | _(inferred: float64)_ | yes |
| `NO_IDENTIFICACION` | _(inferred: object)_ | yes |
| `EXPIRA_IDENTIFICACION` | _(inferred: datetime64[ns])_ | yes |
| `TIPO_IDENTIFICACION` | _(inferred: object)_ | yes |

#### `DATOS`

Rows: 2 | Columns: 50

| Column | Type | Nullable |
|---|---|---|
| `POLIZA` | _(inferred: int64)_ | no |
| `IDCLIENTE` | _(inferred: float64)_ | no |
| `TIPO` | _(inferred: object)_ | yes |
| `FECHA SINIESTRO` | _(inferred: object)_ | yes |
| `DESCRIPCION` | _(inferred: object)_ | yes |
| `FECHA REPORTADO` | _(inferred: object)_ | yes |
| `FORMA` | _(inferred: object)_ | yes |
| `COPIA DE POLIZA` | _(inferred: bool)_ | no |
| `POLIZA LIQUIDADA` | _(inferred: bool)_ | no |
| `DAÑOS VECINOS` | _(inferred: bool)_ | no |
| `FECHA LIQUIDACION` | _(inferred: object)_ | yes |
| `COMPAÑIA` | _(inferred: object)_ | yes |
| `DESDE` | _(inferred: object)_ | yes |
| `HASTA` | _(inferred: object)_ | yes |
| `SERVICIO ADICONAL` | _(inferred: bool)_ | no |
| `COMENTARIOS PROCEDE` | _(inferred: object)_ | yes |
| `PROCEDE` | _(inferred: bool)_ | no |
| `AJUSTADOR` | _(inferred: object)_ | yes |
| `FECHA T AJUSTADOR` | _(inferred: object)_ | yes |
| `FECHA V AJUSTADOR` | _(inferred: object)_ | yes |
| `FECHA CONVENIO` | _(inferred: object)_ | yes |
| `CARTA RECLAMACION` | _(inferred: bool)_ | no |
| `CERTIFICADO M P` | _(inferred: bool)_ | no |
| `NUM M P` | _(inferred: int64)_ | no |
| `FECHA M P` | _(inferred: object)_ | yes |
| `CERT BOMBEROS` | _(inferred: bool)_ | no |
| `NUM BOMBEROS` | _(inferred: float64)_ | no |
| `FECHA BOMBEROS` | _(inferred: object)_ | yes |
| `CERT POLICIA FED` | _(inferred: bool)_ | no |
| `NUM POLICIA FED` | _(inferred: float64)_ | no |
| `FECHA POLICIA FED` | _(inferred: object)_ | yes |
| `FINIQUITO` | _(inferred: bool)_ | no |
| `NUM FINIQUITO` | _(inferred: float64)_ | no |
| `FECHA FINIQUITO` | _(inferred: object)_ | yes |
| `LESIONADOS` | _(inferred: bool)_ | no |
| `DOCUMETO(S) ADIC` | _(inferred: object)_ | yes |
| `DECLARACION ACCIDENTE` | _(inferred: object)_ | yes |
| `CANTIDAD RECLAMADA` | _(inferred: int64)_ | no |
| `CANTIDAD PACTADA` | _(inferred: int64)_ | no |
| `FECHA CHEQUE` | _(inferred: object)_ | yes |
| `RESOLUCION` | _(inferred: object)_ | yes |
| `CONCLUIDO` | _(inferred: bool)_ | no |
| `ENVIO CHEQUE` | _(inferred: bool)_ | no |
| `NUM CHEQUE` | _(inferred: float64)_ | no |
| `FECHA ACEPTACION` | _(inferred: object)_ | yes |
| `FECHA REEMBOLSO` | _(inferred: object)_ | yes |
| `SINIESTRO NUM` | _(inferred: object)_ | yes |
| `CIA AJUSTADOR` | _(inferred: object)_ | yes |
| `DOCS 1` | _(inferred: object)_ | yes |
| `DOCS 2` | _(inferred: object)_ | yes |

#### `DATOS AUTOS`

Rows: 49 | Columns: 1

| Column | Type | Nullable |
|---|---|---|
| `MARCA` | VARCHAR(50) | no |

#### `DATOS AUTOS TIPO`

Rows: 133 | Columns: 1

| Column | Type | Nullable |
|---|---|---|
| `TIPO` | VARCHAR(50) | no |

#### `EDOSEG`

Rows: 5 | Columns: 18

| Column | Type | Nullable |
|---|---|---|
| `NUMID` | DOUBLE(53) | no |
| `LETPOL` | VARCHAR(5) | no |
| `POLIZA` | DOUBLE(53) | no |
| `ASEGURADO` | VARCHAR(50) | yes |
| `PRIMA NETA` | DOUBLE(53) | no |
| `IVA` | DOUBLE(53) | no |
| `PRIMA TOTAL` | DOUBLE(53) | no |
| `DESDE` | DATETIME(19) | no |
| `HASTA` | DATETIME(19) | yes |
| `COMP` | VARCHAR(50) | no |
| `COM` | DOUBLE(53) | no |
| `FECHA1` | DATETIME(19) | yes |
| `FECHA2` | DATETIME(19) | yes |
| `F LIQUIDA1` | DATETIME(19) | yes |
| `F LIQUIDA2` | DATETIME(19) | yes |
| `FECHA  PAGO` | DATETIME(19) | yes |
| `FECHA PAGO 2` | DATETIME(19) | yes |
| `FORMA  PAGO` | VARCHAR(10) | no |

#### `EFECTIVO`

Rows: 295 | Columns: 7

| Column | Type | Nullable |
|---|---|---|
| `CL` | DOUBLE(53) | no |
| `FECHA` | DATETIME(19) | no |
| `MONTO` | DOUBLE(53) | no |
| `MONEDAS` | VARCHAR(50) | yes |
| `CONEPTO` | VARCHAR(100) | yes |
| `F DEPOSITO` | DATETIME(19) | yes |
| `FOLIO` | COUNTER(10) | no |

#### `FECHAIF`

Rows: 1 | Columns: 2

| Column | Type | Nullable |
|---|---|---|
| `FECHA INICIAL` | DATETIME(19) | no |
| `FECHA FINAL` | DATETIME(19) | no |

#### `FECHAS EDOSEG`

Rows: 1 | Columns: 2

| Column | Type | Nullable |
|---|---|---|
| `FECHA1` | DATETIME(19) | no |
| `FECHA2` | DATETIME(19) | no |

#### `FECHAS PRIMA NETA`

Rows: 1 | Columns: 2

| Column | Type | Nullable |
|---|---|---|
| `FECHA1` | DATETIME(19) | no |
| `FECHA2` | DATETIME(19) | no |

#### `FORMAS`

Rows: 11 | Columns: 1

| Column | Type | Nullable |
|---|---|---|
| `FORMA` | VARCHAR(50) | no |

#### `IMPUESTOS`

Rows: 1 | Columns: 1

| Column | Type | Nullable |
|---|---|---|
| `IVA` | DOUBLE(53) | no |

#### `IMPUESTOS_AUTOS`

Rows: 1 | Columns: 1

| Column | Type | Nullable |
|---|---|---|
| `IVA` | DOUBLE(53) | no |

#### `INCENDIO`

Rows: 1 | Columns: 57

| Column | Type | Nullable |
|---|---|---|
| `NUM id` | DOUBLE(53) | no |
| `LETPOL` | VARCHAR(2) | no |
| `NO POLIZA` | INTEGER(10) | no |
| `FOLIO` | INTEGER(10) | no |
| `NOMBRE ASEG` | VARCHAR(50) | no |
| `COMP` | VARCHAR(50) | no |
| `AGENT` | VARCHAR(20) | no |
| `DESDE` | DATETIME(19) | no |
| `HASTA` | DATETIME(19) | no |
| `FORMA  PAGO` | VARCHAR(10) | no |
| `VIG 1` | DATETIME(19) | no |
| `VIG 2` | DATETIME(19) | yes |
| `VIG 3` | DATETIME(19) | yes |
| `VIG 4` | DATETIME(19) | yes |
| `MONEDA` | VARCHAR(7) | no |
| `1ER PAGO` | DOUBLE(53) | no |
| `PAGO SUBSEC` | DOUBLE(53) | no |
| `FECHA  PAGO` | DATETIME(19) | no |
| `EFECTIVO` | BIT(1) | no |
| `NO CHEQUE` | VARCHAR(4) | yes |
| `FECHA PAGO 2` | DATETIME(19) | yes |
| `MONED 2` | VARCHAR(7) | yes |
| `EFECTIVO 2` | BIT(1) | no |
| `NO CHEQUE 2` | VARCHAR(50) | yes |
| `FECHA PAGO 3` | DATETIME(19) | yes |
| `MONED 3` | VARCHAR(7) | yes |
| `EFECTIVO 3` | BIT(1) | no |
| `NO CHEQUE 3` | VARCHAR(50) | yes |
| `FECHA PAGO 4` | DATETIME(19) | yes |
| `MONED 4` | VARCHAR(7) | yes |
| `EFECTIVO 4` | BIT(1) | no |
| `NO CHEQUE 4` | VARCHAR(50) | yes |
| `P NETA` | DOUBLE(53) | no |
| `P NETA 2` | DOUBLE(53) | no |
| `RECARGO` | DOUBLE(53) | no |
| `RECARGO 2` | DOUBLE(53) | no |
| `D POL` | DOUBLE(53) | no |
| `D POL 2` | DOUBLE(53) | no |
| `COM` | DOUBLE(53) | no |
| `COM 2` | DOUBLE(53) | no |
| `LIQUIDADA` | BIT(1) | no |
| `LIQUIDADA 2` | BIT(1) | no |
| `EDIFICIO` | DOUBLE(53) | no |
| `EDIF TERREMOTO` | BIT(1) | no |
| `CONTENIDOS` | DOUBLE(53) | no |
| `CONT TERREMOTO` | BIT(1) | no |
| `CONSTRUCCION` | LONGCHAR(1073741823) | yes |
| `OBSERVACIONES` | LONGCHAR(1073741823) | yes |
| `RENOVACION` | DOUBLE(53) | no |
| `NUM LIQUIDACION` | VARCHAR(50) | no |
| `NUM LIQUIDACION2` | VARCHAR(50) | yes |
| `F LIQUIDA1` | DATETIME(19) | no |
| `F LIQUIDA2` | DATETIME(19) | yes |
| `CALLE Y NO` | VARCHAR(30) | yes |
| `COL` | VARCHAR(30) | yes |
| `EDO` | VARCHAR(2) | yes |
| `TEL` | VARCHAR(8) | yes |

#### `LICENCIAS`

Rows: 309 | Columns: 51

| Column | Type | Nullable |
|---|---|---|
| `NO POLIZA` | VARCHAR(50) | no |
| `FOLIO` | INTEGER(10) | yes |
| `NUMER ID` | DOUBLE(53) | no |
| `P ANTERIOR` | INTEGER(10) | yes |
| `LETPOL` | VARCHAR(4) | no |
| `CALLE Y NO` | VARCHAR(30) | yes |
| `COL` | VARCHAR(15) | yes |
| `EDO` | VARCHAR(2) | no |
| `TEL` | VARCHAR(8) | yes |
| `COMP` | VARCHAR(30) | yes |
| `CONTR` | DOUBLE(53) | no |
| `AGENT` | VARCHAR(20) | yes |
| `DESDE` | DATETIME(19) | no |
| `HASTA` | DATETIME(19) | yes |
| `FORMA  PAGO` | VARCHAR(10) | yes |
| `MONEDA` | VARCHAR(7) | no |
| `FECHA  PAGO` | DATETIME(19) | yes |
| `EFECTIVO` | BIT(1) | no |
| `NO CHEQUE` | VARCHAR(4) | yes |
| `OBSERVACIONES` | LONGCHAR(1073741823) | yes |
| `COBERTURA` | INTEGER(10) | yes |
| `NOMBRE ASEG 1` | VARCHAR(30) | yes |
| `LIC 1` | VARCHAR(20) | yes |
| `EDO 1` | VARCHAR(2) | yes |
| `NOMBRE ASEG 2` | VARCHAR(30) | yes |
| `LIC 2` | VARCHAR(20) | yes |
| `EDO 2` | VARCHAR(2) | yes |
| `NOMBRE ASEG 3` | VARCHAR(30) | yes |
| `LIC 3` | VARCHAR(20) | yes |
| `EDO 3` | VARCHAR(2) | yes |
| `PROPIEDADES` | DOUBLE(53) | yes |
| `PERSONAS` | DOUBLE(53) | yes |
| `CSL LIMITE` | INTEGER(10) | yes |
| `GASTOS MEDICO` | DOUBLE(53) | yes |
| `SERVICIO ADICIONAL` | BIT(1) | no |
| `CLAVE` | DOUBLE(53) | yes |
| `HORA` | DATETIME(19) | yes |
| `$ TOT` | DOUBLE(53) | no |
| `PRIMA NETA` | DOUBLE(53) | no |
| `D POLIZA` | DOUBLE(53) | no |
| `TOTAL` | DOUBLE(53) | no |
| `ACCIDENTE` | DOUBLE(53) | no |
| `RENOVACION` | DOUBLE(53) | no |
| `LIQUIDADA` | BIT(1) | no |
| `NUM LIQUIDACION` | VARCHAR(50) | yes |
| `F LIQUIDA1` | DATETIME(19) | yes |
| `F EMISION` | DATETIME(19) | no |
| `ENDOSO` | BIT(1) | no |
| `CONFIRMA L1` | DATETIME(19) | yes |
| `SERV CIA` | BIT(1) | no |
| `RENT` | BIT(1) | no |

#### `LIQUIDA SELLO`

Rows: 1 | Columns: 4

| Column | Type | Nullable |
|---|---|---|
| `TECLEE LIQUIDACION` | VARCHAR(50) | no |
| `FECHA SELLO` | DATETIME(19) | no |
| `CH COMISION1N` | VARCHAR(50) | no |
| `CH COMISION1F` | DATETIME(19) | no |

#### `LIQUIDAAD`

Rows: 7 | Columns: 6

| Column | Type | Nullable |
|---|---|---|
| `POLIZA` | VARCHAR(50) | no |
| `VIGENCIA INICIAL` | DATETIME(19) | no |
| `PRIMA NETA` | DOUBLE(53) | no |
| `DERECHO DE PÓLIZA` | DOUBLE(53) | no |
| `COM` | DOUBLE(53) | no |
| `OBSERVACIONES` | VARCHAR(50) | no |

#### `M EMPR`

Rows: 5 | Columns: 73

| Column | Type | Nullable |
|---|---|---|
| `NUM id` | DOUBLE(53) | no |
| `LETPOL` | VARCHAR(2) | no |
| `NO POLIZA` | INTEGER(10) | no |
| `FOLIO` | INTEGER(10) | no |
| `NOMBRE ASEG` | VARCHAR(50) | no |
| `COMP` | VARCHAR(50) | no |
| `AGENT` | VARCHAR(20) | yes |
| `DESDE` | DATETIME(19) | no |
| `HASTA` | DATETIME(19) | yes |
| `FORMA  PAGO` | VARCHAR(10) | no |
| `VIG 1` | DATETIME(19) | yes |
| `VIG 2` | DATETIME(19) | yes |
| `VIG 3` | DATETIME(19) | yes |
| `VIG 4` | DATETIME(19) | yes |
| `1ER PAGO` | DOUBLE(53) | no |
| `FECHA  PAGO` | DATETIME(19) | yes |
| `MONED` | VARCHAR(7) | yes |
| `EFECTIVO` | BIT(1) | no |
| `NO CHEQUE` | VARCHAR(4) | yes |
| `PAGO SUBSEC` | DOUBLE(53) | no |
| `FECHA PAGO 2` | DATETIME(19) | yes |
| `MONED 2` | VARCHAR(7) | yes |
| `EFECTIVO 2` | BIT(1) | no |
| `NO CHEQUE 2` | VARCHAR(50) | yes |
| `FECHA PAGO 3` | DATETIME(19) | yes |
| `MONED 3` | VARCHAR(7) | yes |
| `EFECTIVO 3` | BIT(1) | no |
| `NO CHEQUE 3` | VARCHAR(50) | yes |
| `FECHA PAGO 4` | DATETIME(19) | yes |
| `MONED 4` | VARCHAR(7) | yes |
| `EFECTIVO 4` | BIT(1) | no |
| `NO CHEQUE 4` | VARCHAR(50) | yes |
| `P NETA` | DOUBLE(53) | no |
| `P NETA 2` | DOUBLE(53) | no |
| `RECARGO` | DOUBLE(53) | no |
| `RECARGO 2` | DOUBLE(53) | no |
| `D POL` | DOUBLE(53) | no |
| `D POL 2` | DOUBLE(53) | no |
| `COM` | DOUBLE(53) | no |
| `COM 2` | DOUBLE(53) | no |
| `LIQUIDADA` | BIT(1) | no |
| `LIQUIDADA 2` | BIT(1) | no |
| `LIQUIDADA 3` | BIT(1) | no |
| `LIQUIDADA 4` | BIT(1) | no |
| `EDIFICIO` | DOUBLE(53) | no |
| `EDIF TERREMOTO` | BIT(1) | no |
| `CONTENIDOS` | DOUBLE(53) | no |
| `CONT TERREMOTO` | BIT(1) | no |
| `R CIVIL ACT` | DOUBLE(53) | no |
| `R CIVIL ARREND` | DOUBLE(53) | no |
| `ROBO C VIOLENCIA` | DOUBLE(53) | no |
| `CRISTALES` | DOUBLE(53) | no |
| `ANUNCIOS LUM` | INTEGER(10) | no |
| `DIN Y VALORES` | INTEGER(10) | no |
| `PLANTA BAJA` | VARCHAR(50) | yes |
| `PLANTA ALTA` | VARCHAR(50) | yes |
| `CONSTRUCCION` | LONGCHAR(1073741823) | yes |
| `OBSERVACIONES` | LONGCHAR(1073741823) | yes |
| `RENOVACION` | DOUBLE(53) | no |
| `NUM LIQUIDACION` | VARCHAR(50) | yes |
| `NUM LIQUIDACION2` | VARCHAR(50) | yes |
| `NUM LIQUIDACION3` | VARCHAR(50) | yes |
| `NUM LIQUIDACION4` | VARCHAR(50) | yes |
| `F LIQUIDA1` | DATETIME(19) | yes |
| `F LIQUIDA2` | DATETIME(19) | yes |
| `F LIQUIDA3` | DATETIME(19) | yes |
| `F LIQUIDA4` | DATETIME(19) | yes |
| `CALLE Y NO` | VARCHAR(30) | no |
| `COL` | VARCHAR(30) | yes |
| `EDO` | VARCHAR(2) | yes |
| `TEL` | VARCHAR(8) | yes |
| `CONFIRMA L1` | DATETIME(19) | yes |
| `CONFIRMA L2` | DATETIME(19) | yes |

#### `MCA2`

Rows: 4 | Columns: 83

| Column | Type | Nullable |
|---|---|---|
| `NUMER ID` | DOUBLE(53) | no |
| `LETPOL` | VARCHAR(3) | no |
| `POLIZA` | VARCHAR(50) | no |
| `FOLIO` | INTEGER(10) | no |
| `COMP` | VARCHAR(50) | no |
| `AGENT` | VARCHAR(20) | yes |
| `DESDE` | DATETIME(19) | no |
| `HASTA` | DATETIME(19) | yes |
| `COBERTURA` | INTEGER(10) | no |
| `FORMA  PAGO` | VARCHAR(10) | yes |
| `1ER PAGO` | DOUBLE(53) | no |
| `FECHA  PAGO` | DATETIME(19) | yes |
| `MONED` | VARCHAR(7) | yes |
| `EFECTIVO` | BIT(1) | no |
| `NO CHEQUE` | VARCHAR(4) | yes |
| `PROPIEDADES` | DOUBLE(53) | no |
| `PERSONAS` | DOUBLE(53) | no |
| `GASTOS MEDICO` | DOUBLE(53) | no |
| `AÑO1` | VARCHAR(2) | yes |
| `MARCA1` | VARCHAR(15) | no |
| `MODELO1` | VARCHAR(15) | no |
| `AUTO ID1` | VARCHAR(20) | no |
| `CLASE1` | VARCHAR(50) | yes |
| `PLACA1` | VARCHAR(7) | yes |
| `EDO1` | VARCHAR(2) | yes |
| `AÑO2` | VARCHAR(2) | yes |
| `MARCA2` | VARCHAR(15) | yes |
| `MODELO2` | VARCHAR(15) | yes |
| `AUTO ID2` | VARCHAR(20) | yes |
| `CLASE2` | VARCHAR(50) | yes |
| `PLACA2` | VARCHAR(7) | yes |
| `EDO2` | VARCHAR(2) | yes |
| `AÑO3` | VARCHAR(2) | yes |
| `MARCA3` | VARCHAR(15) | yes |
| `MODELO3` | VARCHAR(15) | yes |
| `AUTO ID3` | VARCHAR(20) | yes |
| `CLASE3` | VARCHAR(50) | yes |
| `PLACA3` | VARCHAR(7) | yes |
| `EDO3` | VARCHAR(2) | yes |
| `PRIMA1` | CURRENCY(19) | yes |
| `D POLIZA1` | CURRENCY(19) | yes |
| `NAME1` | VARCHAR(40) | yes |
| `BIRTH1` | DATETIME(19) | yes |
| `EDAD1` | VARCHAR(2) | yes |
| `LIC1` | VARCHAR(20) | yes |
| `LICEDO1` | VARCHAR(2) | yes |
| `OCUP1` | VARCHAR(50) | yes |
| `NAME2` | VARCHAR(40) | yes |
| `BIRTH2` | DATETIME(19) | yes |
| `EDAD2` | VARCHAR(2) | yes |
| `LIC2` | VARCHAR(20) | yes |
| `LICEDO2` | VARCHAR(2) | yes |
| `OCUP2` | VARCHAR(50) | yes |
| `NAME3` | VARCHAR(40) | yes |
| `BIRTH3` | DATETIME(19) | yes |
| `EDAD3` | VARCHAR(2) | yes |
| `LIC3` | VARCHAR(20) | yes |
| `LICEDO3` | VARCHAR(2) | yes |
| `OCUP3` | VARCHAR(50) | yes |
| `POLIZA ANT` | VARCHAR(10) | yes |
| `FECHA PAGO` | DATETIME(19) | yes |
| `PAGO` | DOUBLE(53) | no |
| `CHEQUE` | VARCHAR(4) | yes |
| `LIQUIDADA` | BIT(1) | no |
| `OB1` | LONGCHAR(1073741823) | yes |
| `OB2` | LONGCHAR(1073741823) | yes |
| `OB3` | LONGCHAR(1073741823) | yes |
| `PRIMA CO` | DOUBLE(53) | yes |
| `D POLIZA CO` | DOUBLE(53) | yes |
| `NULIQUIDA` | VARCHAR(50) | yes |
| `RENOVACION` | DOUBLE(53) | yes |
| `CSL LIMITE` | INTEGER(10) | no |
| `F LIQUIDA1` | DATETIME(19) | yes |
| `CONTR` | DOUBLE(53) | no |
| `DIAS` | BIT(1) | no |
| `SEX1` | VARCHAR(1) | yes |
| `SEX2` | VARCHAR(1) | yes |
| `AM` | BIT(1) | no |
| `HORA1` | VARCHAR(5) | no |
| `HORA2` | VARCHAR(5) | no |
| `MP` | DOUBLE(53) | yes |
| `CONFIRMA L1` | DATETIME(19) | yes |
| `RENT` | BIT(1) | no |

#### `MULT`

Rows: 763 | Columns: 82

| Column | Type | Nullable |
|---|---|---|
| `NUM id` | DOUBLE(53) | no |
| `LETPOL` | VARCHAR(2) | no |
| `NO POLIZA` | DOUBLE(53) | no |
| `FOLIO` | VARCHAR(50) | yes |
| `NOMBRE ASEG` | VARCHAR(50) | yes |
| `COMP` | VARCHAR(50) | no |
| `AGENT` | VARCHAR(20) | no |
| `DESDE` | DATETIME(19) | yes |
| `HASTA` | DATETIME(19) | yes |
| `FORMA  PAGO` | VARCHAR(10) | yes |
| `VIG 1` | DATETIME(19) | yes |
| `VIG 2` | DATETIME(19) | yes |
| `VIG 3` | DATETIME(19) | yes |
| `VIG 4` | DATETIME(19) | yes |
| `1ER PAGO` | DOUBLE(53) | no |
| `FECHA  PAGO` | DATETIME(19) | yes |
| `MONED` | VARCHAR(7) | yes |
| `EFECTIVO` | BIT(1) | no |
| `NO CHEQUE` | VARCHAR(4) | yes |
| `PAGO SUBSEC` | DOUBLE(53) | yes |
| `FECHA PAGO 2` | DATETIME(19) | yes |
| `MONED 2` | VARCHAR(7) | yes |
| `EFECTIVO 2` | BIT(1) | no |
| `NO CHEQUE 2` | VARCHAR(50) | yes |
| `FECHA PAGO 3` | DATETIME(19) | yes |
| `MONED 3` | VARCHAR(7) | yes |
| `EFECTIVO 3` | BIT(1) | no |
| `NO CHEQUE 3` | VARCHAR(50) | yes |
| `FECHA PAGO 4` | DATETIME(19) | yes |
| `MONED 4` | VARCHAR(7) | yes |
| `EFECTIVO 4` | BIT(1) | no |
| `NO CHEQUE 4` | VARCHAR(50) | yes |
| `P NETA` | DOUBLE(53) | no |
| `P NETA 2` | DOUBLE(53) | yes |
| `RECARGO` | DOUBLE(53) | no |
| `RECARGO 2` | DOUBLE(53) | yes |
| `D POL` | DOUBLE(53) | no |
| `D POL 2` | DOUBLE(53) | no |
| `COM` | DOUBLE(53) | no |
| `COM 2` | DOUBLE(53) | yes |
| `LIQUIDADA` | BIT(1) | no |
| `LIQUIDADA 2` | BIT(1) | no |
| `EDIFICIO` | DOUBLE(53) | yes |
| `EDIF TERREMOTO` | BIT(1) | no |
| `CONTENIDOS` | DOUBLE(53) | no |
| `CONT TERREMOTO` | BIT(1) | no |
| `R CIVIL FAMILIAR` | DOUBLE(53) | no |
| `R CIVIL ARREND` | DOUBLE(53) | yes |
| `ROBO C VIOLENCIA` | DOUBLE(53) | yes |
| `CRISTALES` | DOUBLE(53) | no |
| `PLANTA BAJA` | VARCHAR(50) | yes |
| `PLANTA ALTA` | VARCHAR(50) | yes |
| `CONSTRUCCION` | LONGCHAR(1073741823) | yes |
| `OBSERVACIONES` | LONGCHAR(1073741823) | yes |
| `RENOVACION` | DOUBLE(53) | yes |
| `NUM LIQUIDACION` | VARCHAR(50) | yes |
| `NUM LIQUIDACION2` | VARCHAR(50) | yes |
| `F LIQUIDA1` | DATETIME(19) | yes |
| `F LIQUIDA2` | DATETIME(19) | yes |
| `CALLE Y NO` | VARCHAR(30) | yes |
| `COL` | VARCHAR(30) | yes |
| `EDO` | VARCHAR(2) | yes |
| `CP` | VARCHAR(50) | yes |
| `TEL` | VARCHAR(8) | yes |
| `CONDO` | BIT(1) | no |
| `TIPO` | VARCHAR(50) | yes |
| `DESCR EDIFICIO` | VARCHAR(100) | yes |
| `MUROS` | VARCHAR(100) | yes |
| `TECHO` | VARCHAR(100) | yes |
| `HIDR` | BIT(1) | no |
| `FOTO1` | LONGBINARY(1073741823) | yes |
| `CONFIRMA L1` | DATETIME(19) | yes |
| `CONFIRMA L2` | DATETIME(19) | yes |
| `CH CONF L1N` | VARCHAR(50) | yes |
| `CH CONF L2N` | VARCHAR(50) | yes |
| `CH COMISION1NU` | VARCHAR(50) | yes |
| `CH COMISION2NU` | VARCHAR(50) | yes |
| `COMISION2FE` | DATETIME(19) | yes |
| `COMISION1FE` | DATETIME(19) | yes |
| `COPIA B` | VARCHAR(2) | yes |
| `DOCS 1` | LONGBINARY(1073741823) | yes |
| `DOCS 2` | LONGBINARY(1073741823) | yes |

#### `RECIBONOCLIENT`

Rows: 1 | Columns: 4

| Column | Type | Nullable |
|---|---|---|
| `NOMBRE CLIENTE` | VARCHAR(50) | no |
| `CONCEPTO` | VARCHAR(200) | no |
| `CANTIDAD` | DOUBLE(53) | no |
| `MONEDAS` | VARCHAR(50) | no |

#### `TABLA AUTOS`

Rows: 804 | Columns: 55

| Column | Type | Nullable |
|---|---|---|
| `NUMER ID` | DOUBLE(53) | no |
| `LETPOL` | VARCHAR(4) | no |
| `NO POLIZA` | VARCHAR(50) | no |
| `P ANTERIOR` | INTEGER(10) | yes |
| `FOLIO` | INTEGER(10) | yes |
| `NOMBRE ASEG` | VARCHAR(50) | yes |
| `CALLE Y NO` | VARCHAR(30) | yes |
| `COL` | VARCHAR(15) | yes |
| `EDO` | VARCHAR(2) | no |
| `TEL` | VARCHAR(8) | yes |
| `COMP` | VARCHAR(30) | yes |
| `AGENT` | VARCHAR(20) | yes |
| `DESDE` | DATETIME(19) | yes |
| `HASTA` | DATETIME(19) | yes |
| `FORMA  PAGO` | VARCHAR(10) | yes |
| `CONTR` | DOUBLE(53) | yes |
| `MONEDA` | VARCHAR(7) | yes |
| `FECHA  PAGO` | DATETIME(19) | yes |
| `EFECTIVO` | BIT(1) | no |
| `NO CHEQUE` | VARCHAR(4) | yes |
| `MARCA 1` | VARCHAR(20) | yes |
| `MODELO 1` | VARCHAR(2) | yes |
| `CARROCERIA 1` | VARCHAR(20) | yes |
| `MOTOR 1` | VARCHAR(20) | yes |
| `PLACA 1` | VARCHAR(50) | yes |
| `MARCA 2` | VARCHAR(20) | yes |
| `MODELO 2` | VARCHAR(4) | yes |
| `CARROCERIA 2` | VARCHAR(20) | yes |
| `MOTOR 2` | VARCHAR(20) | yes |
| `PLACA 2` | VARCHAR(50) | yes |
| `MARCA 3` | VARCHAR(50) | yes |
| `MODELO 3` | VARCHAR(50) | yes |
| `CARROCERIA 3` | VARCHAR(50) | yes |
| `MOTOR 3` | VARCHAR(50) | yes |
| `OBSERVACIONES` | LONGCHAR(1073741823) | yes |
| `COBERTURA` | INTEGER(10) | yes |
| `PROPIEDADES` | DOUBLE(53) | yes |
| `PERSONAS` | DOUBLE(53) | yes |
| `CSL LIMITE` | INTEGER(10) | yes |
| `GASTOS MEDICO` | DOUBLE(53) | yes |
| `SERVICIO ADICIONAL` | BIT(1) | no |
| `CLAVE` | DOUBLE(53) | no |
| `HORA` | DATETIME(19) | yes |
| `PRIMA NETA` | DOUBLE(53) | no |
| `D POLIZA` | DOUBLE(53) | no |
| `TOTAL` | DOUBLE(53) | no |
| `LIQUIDADA` | BIT(1) | no |
| `RENOVACION` | DOUBLE(53) | yes |
| `F EMISION` | DATETIME(19) | yes |
| `ENDOSO` | BIT(1) | no |
| `NUM LIQUIDACION` | VARCHAR(50) | yes |
| `F LIQUIDA1` | DATETIME(19) | yes |
| `CONFIRMA L1` | DATETIME(19) | yes |
| `SERV CIA` | BIT(1) | no |
| `RENT` | BIT(1) | no |

#### `TABLA AUTOS AMPL`

Rows: 478 | Columns: 61

| Column | Type | Nullable |
|---|---|---|
| `NUMER ID` | DOUBLE(53) | no |
| `LETPOL` | VARCHAR(4) | no |
| `NO POLIZA` | VARCHAR(50) | no |
| `P ANTERIOR` | INTEGER(10) | yes |
| `FOLIO` | INTEGER(10) | no |
| `NOMBRE ASEG` | VARCHAR(50) | yes |
| `CALLE Y NO` | VARCHAR(30) | yes |
| `COL` | VARCHAR(15) | yes |
| `EDO` | VARCHAR(2) | no |
| `TEL` | VARCHAR(8) | yes |
| `COMP` | VARCHAR(30) | yes |
| `CONTR` | DOUBLE(53) | yes |
| `AGENT` | VARCHAR(20) | yes |
| `DESDE` | DATETIME(19) | yes |
| `HASTA` | DATETIME(19) | yes |
| `FORMA  PAGO` | VARCHAR(10) | no |
| `MONEDA` | VARCHAR(7) | no |
| `FECHA  PAGO` | DATETIME(19) | yes |
| `EFECTIVO` | BIT(1) | no |
| `NO CHEQUE` | VARCHAR(4) | yes |
| `MARCA` | VARCHAR(20) | yes |
| `MODELO` | VARCHAR(2) | yes |
| `CARROCERIA` | VARCHAR(20) | yes |
| `MOTOR` | VARCHAR(20) | yes |
| `PLACA` | VARCHAR(50) | yes |
| `COLISION` | DOUBLE(53) | yes |
| `SUMA ROBO` | DOUBLE(53) | yes |
| `GASTOS MEDICO` | DOUBLE(53) | yes |
| `ENDOSO` | BIT(1) | no |
| `OBSERVACIONES` | LONGCHAR(1073741823) | yes |
| `COBERTURA` | INTEGER(10) | yes |
| `PROPIEDADES` | DOUBLE(53) | yes |
| `PERSONAS` | DOUBLE(53) | yes |
| `CSL LIMITE` | INTEGER(10) | yes |
| `SERVICIO ADICIONAL` | BIT(1) | no |
| `CLAVE` | DOUBLE(53) | yes |
| `HORA` | DATETIME(19) | yes |
| `PRIMA NETA` | DOUBLE(53) | no |
| `D POLIZA` | DOUBLE(53) | no |
| `TOTAL` | DOUBLE(53) | no |
| `LIQUIDADA` | BIT(1) | no |
| `RENOVACION` | DOUBLE(53) | yes |
| `EXTENDED COVERAGE` | BIT(1) | no |
| `F EMISION` | DATETIME(19) | no |
| `CUBIERTO CON` | VARCHAR(10) | yes |
| `NUM LIQUIDACION` | VARCHAR(50) | yes |
| `F LIQUIDA1` | DATETIME(19) | yes |
| `ROBO%` | DOUBLE(53) | no |
| `COLI%` | DOUBLE(53) | no |
| `SERV CIA` | BIT(1) | no |
| `FOTO1` | LONGBINARY(1073741823) | yes |
| `CONFIRMA L1` | DATETIME(19) | yes |
| `PLACAS` | VARCHAR(50) | yes |
| `D MATERIAL` | VARCHAR(50) | yes |
| `R TOTAL` | VARCHAR(50) | yes |
| `VALOR AUTO` | DOUBLE(53) | yes |
| `LOSS` | BIT(1) | no |
| `RENT` | BIT(1) | no |
| `COPIA B` | VARCHAR(2) | yes |
| `DOCS 1` | LONGBINARY(1073741823) | yes |
| `DOCS 2` | LONGBINARY(1073741823) | yes |

#### `TABLA AUTOS AMPL R`

Rows: 14 | Columns: 56

| Column | Type | Nullable |
|---|---|---|
| `NUMER ID` | DOUBLE(53) | no |
| `LETPOL` | VARCHAR(4) | no |
| `NO POLIZA` | VARCHAR(50) | no |
| `NOMBRE ASEG` | VARCHAR(50) | no |
| `CALLE Y NO` | VARCHAR(30) | yes |
| `COL` | VARCHAR(15) | yes |
| `EDO` | VARCHAR(2) | no |
| `TEL` | VARCHAR(8) | yes |
| `COM` | DOUBLE(53) | yes |
| `COM 2` | DOUBLE(53) | yes |
| `COMP` | VARCHAR(30) | no |
| `AGENT` | VARCHAR(20) | yes |
| `DESDE` | DATETIME(19) | no |
| `HASTA` | DATETIME(19) | yes |
| `VIG 1` | DATETIME(19) | yes |
| `VIG 2` | DATETIME(19) | yes |
| `1ER PAGO` | DOUBLE(53) | yes |
| `FORMA  PAGO` | VARCHAR(10) | no |
| `MONEDA` | VARCHAR(7) | no |
| `FECHA  PAGO` | DATETIME(19) | yes |
| `EFECTIVO` | BIT(1) | no |
| `NO CHEQUE` | VARCHAR(4) | yes |
| `PAGO SUBSEC` | DOUBLE(53) | yes |
| `FECHA PAGO 2` | DATETIME(19) | yes |
| `MONED 2` | VARCHAR(7) | yes |
| `EFECTIVO 2` | BIT(1) | no |
| `NO CHEQUE 2` | VARCHAR(50) | yes |
| `MARCA` | VARCHAR(20) | no |
| `MODELO` | VARCHAR(2) | yes |
| `CARROCERIA` | VARCHAR(20) | no |
| `MOTOR` | VARCHAR(20) | no |
| `COLISION` | VARCHAR(50) | no |
| `SUMA ROBO` | VARCHAR(50) | no |
| `GASTOS MEDICO` | DOUBLE(53) | no |
| `OBSERVACIONES` | LONGCHAR(1073741823) | yes |
| `COBERTURA` | INTEGER(10) | no |
| `PROPIEDADES` | DOUBLE(53) | no |
| `CLAVE` | DOUBLE(53) | yes |
| `PRIMA NETA` | DOUBLE(53) | no |
| `PRIMA NETA2` | DOUBLE(53) | yes |
| `RECARGO` | DOUBLE(53) | no |
| `RECARGO 2` | DOUBLE(53) | yes |
| `D POLIZA` | DOUBLE(53) | no |
| `D POLIZA2` | DOUBLE(53) | yes |
| `LIQUIDADA` | BIT(1) | no |
| `LIQUIDADA 2` | BIT(1) | no |
| `RENOVACION` | DOUBLE(53) | yes |
| `A JURIDICA` | BIT(1) | no |
| `A CAMINO` | BIT(1) | no |
| `NUM LIQUIDACION` | VARCHAR(50) | yes |
| `NUM LIQUIDACION2` | VARCHAR(50) | yes |
| `F LIQUIDA1` | DATETIME(19) | yes |
| `F LIQUIDA2` | DATETIME(19) | yes |
| `CONFIRMA L1` | DATETIME(19) | yes |
| `CONFIRMA L2` | DATETIME(19) | yes |
| `RENT` | BIT(1) | no |

#### `TABLA AUTOS LIMIT`

Rows: 1 | Columns: 38

| Column | Type | Nullable |
|---|---|---|
| `NUMER ID` | DOUBLE(53) | no |
| `LETPOL` | VARCHAR(4) | no |
| `NO POLIZA` | INTEGER(10) | no |
| `FOLIO` | INTEGER(10) | no |
| `CALLE Y NO` | VARCHAR(30) | yes |
| `COL` | VARCHAR(15) | yes |
| `EDO` | VARCHAR(2) | no |
| `TEL` | VARCHAR(8) | yes |
| `COMP` | VARCHAR(30) | no |
| `CONTR` | DOUBLE(53) | no |
| `AGENT` | VARCHAR(20) | no |
| `DESDE` | DATETIME(19) | no |
| `HASTA` | DATETIME(19) | no |
| `FORMA  PAGO` | VARCHAR(10) | no |
| `MONEDA` | VARCHAR(7) | no |
| `FECHA  PAGO` | DATETIME(19) | yes |
| `EFECTIVO` | BIT(1) | no |
| `NO CHEQUE` | VARCHAR(4) | yes |
| `MARCA` | VARCHAR(20) | no |
| `MODELO` | VARCHAR(2) | no |
| `CARROCERIA` | VARCHAR(20) | no |
| `MOTOR` | VARCHAR(20) | no |
| `SUMA ROBO` | DOUBLE(53) | no |
| `GASTOS MEDICO` | DOUBLE(53) | no |
| `ENDOSO` | BIT(1) | no |
| `OBSERVACIONES` | LONGCHAR(1073741823) | yes |
| `COBERTURA` | INTEGER(10) | no |
| `PROPIEDADES` | DOUBLE(53) | no |
| `PERSONAS` | DOUBLE(53) | no |
| `SERVICIO ADICIONAL` | BIT(1) | no |
| `CLAVE` | DOUBLE(53) | no |
| `HORA` | DATETIME(19) | no |
| `PRIMA NETA` | DOUBLE(53) | no |
| `D POLIZA` | DOUBLE(53) | no |
| `IVA` | DOUBLE(53) | no |
| `TOTAL` | DOUBLE(53) | no |
| `LIQUIDADA` | BIT(1) | no |
| `RENOVACION` | DOUBLE(53) | no |

#### `TABLA AUTOS RC R`

Rows: 8 | Columns: 57

| Column | Type | Nullable |
|---|---|---|
| `NUMER ID` | DOUBLE(53) | no |
| `LETPOL` | VARCHAR(4) | no |
| `NO POLIZA` | VARCHAR(50) | no |
| `NOMBRE ASEG` | VARCHAR(50) | yes |
| `CALLE Y NO` | VARCHAR(30) | yes |
| `COL` | VARCHAR(15) | yes |
| `EDO` | VARCHAR(2) | no |
| `TEL` | VARCHAR(8) | yes |
| `COMP` | VARCHAR(30) | yes |
| `COM` | DOUBLE(53) | yes |
| `COM 2` | DOUBLE(53) | yes |
| `AGENT` | VARCHAR(20) | yes |
| `DESDE` | DATETIME(19) | no |
| `HASTA` | DATETIME(19) | yes |
| `VIG 1` | DATETIME(19) | yes |
| `1ER PAGO` | DOUBLE(53) | no |
| `FORMA  PAGO` | VARCHAR(10) | no |
| `MONEDA` | VARCHAR(7) | no |
| `FECHA  PAGO` | DATETIME(19) | yes |
| `EFECTIVO` | BIT(1) | no |
| `NO CHEQUE` | VARCHAR(4) | yes |
| `PAGO SUBSEC` | DOUBLE(53) | yes |
| `FECHA PAGO 2` | DATETIME(19) | yes |
| `MONED 2` | VARCHAR(7) | yes |
| `EFECTIVO 2` | BIT(1) | no |
| `NO CHEQUE 2` | VARCHAR(50) | yes |
| `MARCA` | VARCHAR(20) | yes |
| `MODELO` | VARCHAR(2) | yes |
| `CARROCERIA` | VARCHAR(20) | yes |
| `MOTOR` | VARCHAR(20) | yes |
| `GASTOS MEDICO` | DOUBLE(53) | no |
| `ENDOSO` | BIT(1) | no |
| `OBSERVACIONES` | LONGCHAR(1073741823) | no |
| `COBERTURA` | INTEGER(10) | no |
| `PROPIEDADES` | DOUBLE(53) | no |
| `SERVICIO ADICIONAL` | BIT(1) | no |
| `CLAVE` | DOUBLE(53) | yes |
| `HORA` | DATETIME(19) | no |
| `PRIMA NETA` | DOUBLE(53) | no |
| `PRIMA NETA2` | DOUBLE(53) | no |
| `RECARGO` | DOUBLE(53) | no |
| `RECARGO 2` | DOUBLE(53) | no |
| `D POLIZA` | DOUBLE(53) | no |
| `D POLIZA2` | DOUBLE(53) | no |
| `LIQUIDADA` | BIT(1) | no |
| `LIQUIDADA 2` | BIT(1) | no |
| `RENOVACION` | DOUBLE(53) | yes |
| `A JURIDICA` | BIT(1) | no |
| `A CAMINO` | BIT(1) | no |
| `F EMISION` | DATETIME(19) | no |
| `NUM LIQUIDACION` | VARCHAR(50) | yes |
| `NUM LIQUIDACION2` | VARCHAR(50) | yes |
| `F LIQUIDA1` | DATETIME(19) | yes |
| `F LIQUIDA2` | DATETIME(19) | yes |
| `CONFIRMA L1` | DATETIME(19) | yes |
| `CONFIRMA L2` | DATETIME(19) | yes |
| `RENT` | BIT(1) | no |

#### `TABLE DATOS LIQUIDA MCA2`

Rows: 1 | Columns: 7

| Column | Type | Nullable |
|---|---|---|
| `COMPANIA` | VARCHAR(50) | no |
| `AGENTE` | VARCHAR(50) | no |
| `CLAVE` | DOUBLE(53) | no |
| `CONTROL` | VARCHAR(50) | no |
| `FECHA INI` | DATETIME(19) | no |
| `FECHA FIN` | DATETIME(19) | no |
| `MENSAJE` | LONGCHAR(1073741823) | yes |

#### `TABLE DATOS LIQUIDA MF`

Rows: 1 | Columns: 5

| Column | Type | Nullable |
|---|---|---|
| `COMPANIA` | VARCHAR(50) | no |
| `AGENTE` | VARCHAR(50) | no |
| `CONTROL` | VARCHAR(50) | no |
| `FECHA INI` | DATETIME(19) | no |
| `FECHA FIN` | DATETIME(19) | no |

#### `TABLE DATOS LIQUIDA RES`

Rows: 1 | Columns: 6

| Column | Type | Nullable |
|---|---|---|
| `COMPANIA` | VARCHAR(50) | no |
| `AGENTE` | VARCHAR(50) | no |
| `CLAVE` | DOUBLE(53) | no |
| `CONTROL` | VARCHAR(50) | no |
| `FECHA INI` | DATETIME(19) | no |
| `FECHA FIN` | DATETIME(19) | no |

#### `TABLE DATOS LIQUIDA TUR`

Rows: 1 | Columns: 7

| Column | Type | Nullable |
|---|---|---|
| `COMPANIA` | VARCHAR(50) | no |
| `AGENTE` | VARCHAR(50) | no |
| `CLAVE` | DOUBLE(53) | no |
| `CONTROL` | VARCHAR(50) | no |
| `FECHA INI` | DATETIME(19) | no |
| `FECHA FIN` | DATETIME(19) | no |
| `EXT COVERAGE` | DOUBLE(53) | yes |

#### `TIPOS`

Rows: 4 | Columns: 1

| Column | Type | Nullable |
|---|---|---|
| `TIPO` | VARCHAR(50) | no |

#### `UTILSEG`

Rows: 1582 | Columns: 3

| Column | Type | Nullable |
|---|---|---|
| `NOMBRE` | VARCHAR(50) | yes |
| `SEGUROS` | INTEGER(10) | yes |
| `UTIL` | INTEGER(10) | yes |

#### `gen1`

Rows: 9 | Columns: 6

| Column | Type | Nullable |
|---|---|---|
| `RFC` | VARCHAR(50) | yes |
| `CLAVE` | DOUBLE(53) | yes |
| `COMP` | VARCHAR(30) | yes |
| `FPAGO` | VARCHAR(10) | yes |
| `MONED` | VARCHAR(7) | yes |
| `gen2_ID` | INTEGER(10) | no |

#### `gen2`

Rows: 14 | Columns: 2

| Column | Type | Nullable |
|---|---|---|
| `AGENT` | VARCHAR(20) | yes |
| `ID` | COUNTER(10) | no |

#### Excluded tables

| Table | Rows |
|---|---|
| `AMPL MENS` | 1 |
| `AMPL R MENS` | 1 |
| `BORRA` | 1 |
| `GENERICO_OLD` | 6 |
| `ID TABLA` | 0 |
| `ID TABLATLAS` | 0 |
| `IN MENS` | 1 |
| `LIC MENS` | 1 |
| `MCA2 MENS` | 1 |
| `ME MENS` | 1 |
| `MF MENS` | 1 |
| `RC MENSAJE` | 1 |
| `RC R MENS` | 1 |
| `TABLA AUTOS LIMIT R` | 0 |
| `TABLA LIQUIDA MCA2` | 0 |
| `TABLA LIQUIDA MF` | 0 |
| `TABLA LIQUIDA RES` | 0 |
| `TABLA LIQUIDA TUR` | 0 |
| `TABLA LIQUIDA TUR ENDOSO` | 0 |
| `TIT` | 1 |
| `TODOS` | 0 |
| `TODOSJC` | 569 |
| `vigenta casa y auto unicos` | 1733 |

### SCOTHIA.mdb

7 tables total — 4 included in migration, 3 excluded (scratch/template/report tables).

#### `DATOS E`

Rows: 15406 | Columns: 8

| Column | Type | Nullable |
|---|---|---|
| `FECHA` | DATETIME(19) | no |
| `TIPO` | VARCHAR(50) | no |
| `NUM` | DOUBLE(53) | yes |
| `CONCEPTO` | VARCHAR(50) | yes |
| `EGRESO` | DOUBLE(53) | no |
| `OPERADO` | BIT(1) | no |
| `NOTAS` | VARCHAR(100) | yes |
| `CANTIDAD EN LETRA` | VARCHAR(100) | yes |

#### `DATOS I`

Rows: 6948 | Columns: 8

| Column | Type | Nullable |
|---|---|---|
| `FECHA` | DATETIME(19) | no |
| `TIPO` | VARCHAR(50) | no |
| `NUM` | DOUBLE(53) | yes |
| `CONCEPTO` | VARCHAR(50) | yes |
| `INGRESO` | DOUBLE(53) | no |
| `OPERADO` | BIT(1) | no |
| `NOTAS` | VARCHAR(100) | yes |
| `TRANSFERIDO` | BIT(1) | no |

#### `TABLA RAMODOS`

Rows: 66 | Columns: 1

| Column | Type | Nullable |
|---|---|---|
| `RAMO2` | VARCHAR(50) | no |

#### `ban`

Rows: 1 | Columns: 1

| Column | Type | Nullable |
|---|---|---|
| `banco` | VARCHAR(50) | no |

#### Excluded tables

| Table | Rows |
|---|---|
| `FECHAIF` | 1 |
| `INFORME` | 0 |
| `INFORME BA` | 0 |
