The readiness badge is the behavioral (column-flag) score from
berlindb/readiness. These schemas are authored
on berlindb/core, so 100% is expected by construction - it confirms the tables
are fully reproduced, and would drop only if a core flag went missing.
BerlinDB schemas for WooCommerce's core database tables - auto-generated by
introspecting a live install, and continuously tested to measure whether shared
berlindb/core can faithfully reproduce them.
Sibling of berlindb/wp-core-tables,
edd-core-tables, and
sc-core-tables.
This is an independent, community project. It is not affiliated with, endorsed by, or sponsored by WooCommerce or Automattic. "WooCommerce" is a trademark of Automattic Inc., used here only nominatively to describe compatibility. No WooCommerce trademark appears in this project's package, namespace, or class names.
WooCommerce does not use BerlinDB - it has its own CRUD data stores and HPOS
(High-Performance Order Storage). So, like wp-core-tables, this project adds a
BerlinDB layer over WooCommerce's existing tables: it declares each table as a
berlindb/core schema and verifies core can express it exactly.
- Generate (
bin/generate-schemas.php) - reads every WooCommerce-owned table (the authoritativeWC_Install::get_tables()list, both thewc_*andwoocommerce_*prefixes, incl. the HPOS order tables; excludes the bundled Action Scheduler library) viainformation_schemaand emits aberlindb/coreSchema class per table intosrc/Schemas/. Both prefixes are stripped from class names, so no class is named after the WooCommerce mark (wc_orders->Orders,woocommerce_order_items->OrderItems). - Capability test (
tests/CapabilityTest.php) - core creates a scratch table from each schema, re-introspects it, and compares against the live table. Strict.
Green - all 35 WooCommerce tables (31 base + 4 HPOS) reproduce exactly on today's
berlindb/core. This validates the two fixes WooCommerce's schema stresses hardest:
decimal(P,S) scale (WooCommerce money is decimal(26,8);
core#244) and DEFAULT-less NOT NULL text
(core#245). Composite and non-auto-increment
primary keys (WooCommerce has several, incl. HPOS wc_orders) also reproduce.
A scheduled workflow polls WooCommerce's latest release, regenerates the schemas, and
opens a PR when the schema changes. CI runs the capability test against released
WooCommerce plugin builds (from wordpress.org), and berlindb/core canaries this suite on
every push to core master.
Generation reads the DDL (columns + indexes) - not WooCommerce's higher-level data-store behavior. This proves structural parity, not behavioral parity.