No project description provided
Project description
guillotina_evolution
Addon that provides evolutions/migrations to create or update objects in your Guillotina containers.
Install
pip install guillotina_evolution
Configure
Add the following values in app_settings
:
app_settings = {
"applications": [
"guillotina_evolution",
],
"commands": {
"g-evolve": "guillotina_evolution.commands.evolve.EvolveCommand",
},
Configure your app addon to initialize guillotina_evolution when is installed:
from guillotina.component import get_utility
from guillotina_evolution.interfaces import IEvolutionUtility
@configure.addon(name="app", title="Your guillotina app")
class ManageAddon(Addon):
@classmethod
async def install(cls, container, request):
utility = get_utility(IEvolutionUtility)
utility.install() # initialize current generation with the greatest registered generation
# ...
Write your evolver
Create a folder evolutions
inside your guillotina app that contains the following files:
app/evolutions/__init__.py
from .r20190118 import * # noqa
# Don't forget to add all rXXXXXXXX.py!
app/evolutions/r20190118.py
from guillotina_evolution.utils import register_evolution
@register_evolution(1)
async def evolver(container):
async for item in container.async_items():
item.title = item.title + ' (Migrated)'
item.register()
Update the includeme()
of your app:
app/__init__.py
def includeme(root):
# ...
configure.scan("app.evolutions")
Evolve
Run guillotina command g-evolve
to run your migrations.
g -c config.yaml g-evolve
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
guillotina_evolution-1.1.0.tar.gz
(16.8 kB
view hashes)
Close
Hashes for guillotina_evolution-1.1.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 39e52309df57cdaf4afede9f7cdbd0796c73d149dcdf904bc0e555869877ce44 |
|
MD5 | b47fc1e82c9dc2360d93dcc9ad603a52 |
|
BLAKE2b-256 | d973de0137b466fcc943c554bf311bcd5b54df4cd122f86663febcefb0f32664 |