feat(migrations): track migrations

This commit is contained in:
2026-03-10 14:16:37 +01:00
parent f88b0b386f
commit 8fb52132bb
3 changed files with 116 additions and 0 deletions

View File

@@ -0,0 +1,31 @@
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("wagtailcore", "0040_page_draft_title"),
]
operations = [
migrations.CreateModel(
name="HomePage",
fields=[
(
"page_ptr",
models.OneToOneField(
on_delete=models.CASCADE,
parent_link=True,
auto_created=True,
primary_key=True,
serialize=False,
to="wagtailcore.Page",
),
),
],
options={
"abstract": False,
},
bases=("wagtailcore.page",),
),
]

View File

@@ -0,0 +1,66 @@
from django.db import migrations
def create_homepage(apps, schema_editor):
# Get models
ContentType = apps.get_model("contenttypes.ContentType")
Page = apps.get_model("wagtailcore.Page")
Site = apps.get_model("wagtailcore.Site")
HomePage = apps.get_model("home.HomePage")
# Delete the default homepage (of type Page) as created by wagtailcore.0002_initial_data,
# if it exists
page_content_type = ContentType.objects.get(
model="page", app_label="wagtailcore"
)
Page.objects.filter(
content_type=page_content_type, slug="home", depth=2
).delete()
# Create content type for homepage model
homepage_content_type, __ = ContentType.objects.get_or_create(
model="homepage", app_label="home"
)
# Create a new homepage
homepage = HomePage.objects.create(
title="Home",
draft_title="Home",
slug="home",
content_type=homepage_content_type,
path="00010001",
depth=2,
numchild=0,
url_path="/home/",
)
# Create a site with the new homepage set as the root
Site.objects.create(hostname="localhost", root_page=homepage, is_default_site=True)
def remove_homepage(apps, schema_editor):
# Get models
ContentType = apps.get_model("contenttypes.ContentType")
HomePage = apps.get_model("home.HomePage")
# Delete the default homepage
# Page and Site objects CASCADE
HomePage.objects.filter(slug="home", depth=2).delete()
# Delete content type for homepage model
ContentType.objects.filter(model="homepage", app_label="home").delete()
class Migration(migrations.Migration):
run_before = [
("wagtailcore", "0053_locale_model"),
]
dependencies = [
("home", "0001_initial"),
]
operations = [
migrations.RunPython(create_homepage, remove_homepage),
]

View File

@@ -0,0 +1,19 @@
# Generated by Django 6.0.3 on 2026-03-10 11:55
import wagtail.fields
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('home', '0002_create_homepage'),
]
operations = [
migrations.AddField(
model_name='homepage',
name='body',
field=wagtail.fields.RichTextField(blank=True),
),
]