Skip to content

Migration

pelican.migration.Migration dataclass

Migration(name, revision, up=None, down=None)

name instance-attribute

name

revision instance-attribute

revision

up class-attribute instance-attribute

up = None

down class-attribute instance-attribute

down = None

display_name property

display_name

file_name property

file_name

pelican.registry.MigrationRegistry

MigrationRegistry()
Source code in pelican/registry.py
 9
10
def __init__(self) -> None:
    self._migrations: dict[int, Migration] = {}

register_up

register_up(revision, name, func)
Source code in pelican/registry.py
12
13
14
15
16
17
18
19
20
21
22
23
24
def register_up(self, revision: int, name: str, func: F) -> None:
    migration = self._migrations.get(
        revision, Migration(revision=revision, name=name)
    )

    if not self._migrations.get(revision):
        self._migrations[revision] = migration

    if migration.up:
        raise DuplicateMigrationError(
            f"'up' migration already registered for revision {revision}"
        )
    migration.up = func

register_down

register_down(revision, name, func)
Source code in pelican/registry.py
26
27
28
29
30
31
32
33
34
35
36
37
38
def register_down(self, revision: int, name: str, func: F) -> None:
    migration = self._migrations.get(
        revision, Migration(revision=revision, name=name)
    )

    if not self._migrations.get(revision):
        self._migrations[revision] = migration

    if migration.down:
        raise DuplicateMigrationError(
            f"'down' migration already registered for revision {revision}"
        )
    migration.down = func

get_all

get_all()
Source code in pelican/registry.py
40
41
def get_all(self) -> list[Migration]:
    return sorted(self._migrations.values(), key=lambda m: m.revision)

get

get(revision)
Source code in pelican/registry.py
43
44
def get(self, revision: int) -> Migration | None:
    return self._migrations.get(revision)

clear

clear()
Source code in pelican/registry.py
46
47
def clear(self) -> None:
    self._migrations.clear()

pelican.migration.up

up(func)

Decorator to register an 'up' migration.

Example

from pelican import migration


@migration.up
def upgrade() -> None:
    ...
Source code in pelican/migration.py
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
def up(func: F) -> F:
    """Decorator to register an 'up' migration.

    ## Example

    ```python
    from pelican import migration


    @migration.up
    def upgrade() -> None:
        ...
    ```
    """
    revision, name = _extract_migration_information(func)
    get_registry().register_up(revision, name, func)
    return func

pelican.migration.down

down(func)

Decorator to register a 'down' migration.

Example

from pelican import migration


@migration.down
def downgrade() -> None:
    ...
Source code in pelican/migration.py
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
def down(func: F) -> F:
    """Decorator to register a 'down' migration.

    ## Example

    ```python
    from pelican import migration


    @migration.down
    def downgrade() -> None:
        ...
    ```
    """
    revision, name = _extract_migration_information(func)
    get_registry().register_down(revision, name, func)
    return func

pelican.migration.MigrationError

Bases: Exception

pelican.migration.DuplicateMigrationError