---
title: "Installation"
manual: "Data Factory"
version: "main"
source: "Installation/Index.rst"
rendered: "2026-09-27T14:36:23+00:00"
---

# Installation {#installation}

The extension has to be installed like any other TYPO3 CMS extension.

This is the documentation of branch `main`, the 2.x line of the extension. It
requires `typo3/cms-core` `^13.4 || ^14.3` and PHP
`^8.2 || ^8.3 || ^8.4 || ^8.5`, so it installs on **TYPO3 v13.4 up to v14.3**
and **PHP 8.2 up to 8.5**. TYPO3 v12.4 is served by branch `1`, the 1.x line,
which supports PHP 8.1 as well - for TYPO3 v12 only. See
[Compatibility](../Introduction/Index.html#compatibility) for the full matrix, branch `1`
included.

## Composer mode {#composer-mode}

Seeding demo, fixture and development data is usually a development concern, so
the extension normally belongs in `require-dev` of the project whose data
is rebuilt:

```bash
composer require --dev sbuerk/data-factory
```

Require it normally when a project provisions itself from a seed set — the
commands then exist in the deployed installation as well:

```bash
composer require sbuerk/data-factory
```

Either command resolves to the line matching the installed core, because each
line constrains `typo3/cms-core` itself - 2.x on TYPO3 v13.4 and v14.3, 1.x on
v12.4. Pin the line where a project wants it written down; the 2.x line keeps
the set descriptor, the scenario format and the two commands compatible:

```bash
composer require --dev "sbuerk/data-factory:^2.0"
```

## Classic mode {#classic-mode}

1.  **Get it from the Extension Manager**:
    Switch to the module **Admin Tools > Extensions**, switch to
    **Get Extensions** and search for the extension key
    *data_factory*, then import the extension from the repository.
1.  **Get it from typo3.org**:
    You can always get the current version from [TER](https://extensions.typo3.org/extension/data_factory) by downloading the zip
    version. Upload the file afterwards in the Extension Manager.
1.  **Get it from the repository**:
    Every tag also publishes `data_factory_<version>.zip` as a
    [GitHub release](https://github.com/sbuerk/data-factory/releases), which
    is the same artefact the TER receives. Upload it in the Extension Manager.

> [!NOTE]
> Composer mode is the supported way to install this extension. Seed sets are
> discovered from the active packages of the installation either way, so
> nothing about a set changes - but the two console commands are reached
> through `vendor/bin/typo3` in composer mode and through
> `typo3/sysext/core/bin/typo3` in classic mode.

## After the installation {#after-the-installation}

The extension needs no configuration of its own: it has no extension
configuration, no TypoScript and no backend module. Activating it adds the two
console commands, and nothing else in the installation changes until one of them
is run.

```bash
vendor/bin/typo3 data-factory:list
```

An installation whose extensions provide no seed set answers with
`No active extension provides a seed set.` and exits successfully — that is
the normal state of most installations. Writing a seed set is described in
[Configuration](../Configuration/Index.html#configuration).

## Requirements for an import {#requirements-for-an-import}

Two conditions have to be met for `data-factory:import`, and both are refusals
with an explanation rather than silent failures:

-   **It runs on the command line, as an administrator.** The TYPO3 console
    application authenticates the `_cli_` backend user, which is an
    administrator by default. TYPO3 honours a declared uid only for an
    administrator and ignores it silently otherwise, which would write a page
    tree with different uids than the set declares.
-   **A file storage has to exist** when the set brings files. A new
    installation gets its `fileadmin/` storage from `typo3 setup`; a
    set may also name the storage to write into.

## See also {#see-also}

-   [A complete seed set](../Configuration/Index.html#configuration-complete-set) — a whole set, with
    what importing it writes
-   [Configuration](../Configuration/Index.html#configuration) — the seed definition format, key by
    key
-   [The commands](../Configuration/Index.html#configuration-commands) — every option and every exit
    code
-   [Changelog](../Changelog/Index.html#changelog)
