Welcome | Get started | Dive into Lino | Contribute | Reference | More

Loading order of the demo fixtures

We suggest to see each fixture name as a loading phase. The application developer is responsible to specify a meaningful set of names in the demo_fixtures setting.

Our convention is to define the following names of demo fixtures:

std minimal_ledger demo demo_bookings payments demo2 demo3 checksummaries checkdata

std minimal_ledger demo demo_bookings payments demo2 demo3 checksummaries checkdata

The loading order of demo data is important because the fixtures of the Lino Extensions Library are inter-dependent. They create users, cities, journals, contacts, invoices, payments, reports, notifications, ... you cannot write invoices if you have no customers, and an accounting report makes no sense if bank statements haven't been entered.

Lino basically uses Django's approach of finding demo fixtures: When Django gets a series of fixture names to load, it will load them in the specified order, and for each fixture will ask each plugin to load that fixture. If a plugin doesn't define a fixture of that name, it simply does nothing.

The demo_fixtures setting is a string with a space-separated list of fixture names to be loaded by pm prep.


The std fixtures should add default database content expected to be in a virgin database even when no "demo data" is requested. This should always be the first fixture of your demo_fixtures setting. It is provided by the following plugins:


Add minimal config data. Should come after std and before demo. Some day we should rename this to "predemo"


Adds master demo data.


Adds more demo data (originally "bookings"). Should come after demo.

  • lino_xl.lib.invoicing creates monthly invoicing plans and executes them. Starts a January 1st of lino_xl.lib.ledger.Plugin.start_year. Stops 2 months before today (we "forgot" to run invoicing the last two months) because we want to have something in our invoicing plan.

  • lino_xl.lib.ledger Creates fictive monthly purchase invoices. For some of them it creates a dummy upload file that represents the source document.

  • lino_xl.lib.sales creates fictive monthly sales.


Adds even more demo data (originally "payments"). Should come after demo_bookings.

  • lino_xl.lib.bevat creates a Belgian VAT office and some VAT declarations.

  • lino_xl.lib.bevats creates a Belgian VAT office and some VAT declarations.

  • lino_xl.lib.eevat creates an Estonian VAT office and some VAT declarations.

  • lino_xl.lib.finan creates automatic monthly payment orders and bank statements. Bank statements of last month are not yet entered into database


Add final demo data.

  • lino.modlib.uploads creates an orphan file foo.pdf in uploads folder and removes the file of one first upload entry to simulate some data issues to detect by checkdata.


Should come after demo2.

This fixture should always be the last in your demo_fixtures setting.