PHPackages                             tanoconsulting/ezdbintegritybundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. tanoconsulting/ezdbintegritybundle

ActiveSymfony-bundle[Database &amp; ORM](/categories/database)

tanoconsulting/ezdbintegritybundle
==================================

Validates database data and binary file storage of eZPlatform 3 (aka Ibexa OSS/DXP)

1.0.0-BETA1(5y ago)061GPL-2.0PHPPHP ^7.3|^8.0

Since May 3Pushed 5y ago1 watchersCompare

[ Source](https://github.com/tanoconsulting/ezdbintegritybundle)[ Packagist](https://packagist.org/packages/tanoconsulting/ezdbintegritybundle)[ GitHub Sponsors](https://github.com/sponsors/tanoconsulting)[ RSS](/packages/tanoconsulting-ezdbintegritybundle/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (3)Versions (2)Used By (0)

eZ DB Integrity Bundle for eZPlatform 3 / Ibexa DXP
===================================================

[](#ez-db-integrity-bundle-for-ezplatform-3--ibexa-dxp)

This bundle is the 'eZPlatform 3 port' of the eZDBIntegrity extension for eZPublish/eZPlatform 1 and 2.

Goals
-----

[](#goals)

Allow checking integrity of data in the eZPlatform database:

- foreign keys
- generic data integrity rules which can not expressed as foreign key
- content fields values according to their content type field definition (not yet implemented)

Allow checking integrity of the eZPlatform storage files (images, media and binary files from content).

Requirements
------------

[](#requirements)

eZPlatform 3, running on MySQL/MariaDB

Installation
------------

[](#installation)

Install via Composer: `composer require "tanoconsulting/ezdbintegritybundle:1.0.0-beta2" "tanoconsulting/datavalidatorbundle >=1.0.0-BETA1"`

Getting started
---------------

[](#getting-started)

All this bundle does is to add some cli commands. To get you started, try running:

```
php bin/console ezdbintegrity:check:schema --dry-run

php bin/console ezdbintegrity:check:schema

php bin/console ezdbintegrity:check:schema --display-data

php bin/console ezdbintegrity:check:storage

php bin/console ezdbintegrity:check:storage --check-db-orphans

php bin/console ezdbintegrity:check:storage --check-db-orphans --display-data

```

All of the commands do print out more information about what is going on, and more details about the violations found, when they are run with the `-v` option.

Tips
----

[](#tips)

- To avoid excessive memory usage from large queries, when running Symfony in "debug mode", such as commonly for "dev" envs, add the `--no-debug` option to your commands. If possible, use a non-debug Symfony env.
- If you still get an 'allowed memory size' fatal error, run the commands with `php -d memory_limit=-1`.
- The best way to troubleshoot "missing images" is to identify only those missing image files which correspond to a currently published content version, and which are not auto-generated aliases. In the same way, for missing binary files, it is useful to identify only those hich correspond to a currently published content version.

    This can be achieved by filtering the list of all missing files using the following command:

    ```
      php bin/console ezdbintegrity:check:storage --check-db-orphans --display-data -v | grep -v '"v_status":null' | grep -v '"alias":true'

    ```
- If you have lots of images and variations, it might be worth pruning all empty directories from the image storage folder from time to time, esp. before executing a backup or if your disk is running out of inodes. A quick one-liner to find all empty subdirectories of the current directory is:

    ```
      find . -type d -empty

    ```

    and to remove them:

    ```
      find . -type d -empty -delete

    ```

Still to be done
----------------

[](#still-to-be-done)

- validation of content fields data
- allow users to add constraint definitions for their own custom tables
- test if checks work with multi-repository setups
- test if checks work with ezdfs setups
- test if this bundle could work with ezplatform 2
- improvements in output formatting and ability to run a subset of checks
- improvements to storage checks:
    - look harder for candidate replacement files available on disk for missing images (eg. look for {$file}\_reference.jpg)
    - validation of image variation files (ie. check existing aliases without an original file)

DISCLAIMER
----------

[](#disclaimer)

!!! DO NOT BLINDLY DELETE ANY DATA IN THE DB WHICH IS REPORTED AS FOREIGN KEY VIOLATION !!!

!!! DO NOT BLINDLY DELETE ANY STORAGE FILE WHICH IS REPORTED AS ORPHAN !!!

We take no responsibility for consequences if you do. You should carefully investigate the reason for such violations. There is a good chance that the problem lies within this extension and not your data - the FK definitions provided have been reverse-engineered from existing codebase and databases, and are not cast in stone.

###  Health Score

21

—

LowBetter than 19% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity5

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity43

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

1836d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/f641f7d6edabf83c56f6c4998b04e6c59a00b46bf51ca6699c31b09f9c948677?d=identicon)[gggeek](/maintainers/gggeek)

---

Top Contributors

[![gggeek](https://avatars.githubusercontent.com/u/308634?v=4)](https://github.com/gggeek "gggeek (17 commits)")

---

Tags

databaseezplatformintegrity-auditingdatabaseezplatform

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/tanoconsulting-ezdbintegritybundle/health.svg)

```
[![Health](https://phpackages.com/badges/tanoconsulting-ezdbintegritybundle/health.svg)](https://phpackages.com/packages/tanoconsulting-ezdbintegritybundle)
```

###  Alternatives

[doctrine/dbal

Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.

9.7k578.4M5.6k](/packages/doctrine-dbal)[doctrine/orm

Object-Relational-Mapper for PHP

10.2k285.3M6.2k](/packages/doctrine-orm)[doctrine/doctrine-bundle

Symfony DoctrineBundle

4.8k241.3M3.3k](/packages/doctrine-doctrine-bundle)[doctrine/migrations

PHP Doctrine Migrations project offer additional functionality on top of the database abstraction layer (DBAL) for versioning your database schema and easily deploying changes to it. It is a very easy to use and a powerful tool.

4.8k204.8M440](/packages/doctrine-migrations)[doctrine/data-fixtures

Data Fixtures for all Doctrine Object Managers

2.9k136.1M516](/packages/doctrine-data-fixtures)[robmorgan/phinx

Phinx makes it ridiculously easy to manage the database migrations for your PHP app.

4.5k46.2M405](/packages/robmorgan-phinx)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
