feat(migrations): track migrations
This commit is contained in:
31
home/migrations/0001_initial.py
Normal file
31
home/migrations/0001_initial.py
Normal 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",),
|
||||||
|
),
|
||||||
|
]
|
||||||
66
home/migrations/0002_create_homepage.py
Normal file
66
home/migrations/0002_create_homepage.py
Normal 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),
|
||||||
|
]
|
||||||
19
home/migrations/0003_homepage_body.py
Normal file
19
home/migrations/0003_homepage_body.py
Normal 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),
|
||||||
|
),
|
||||||
|
]
|
||||||
Reference in New Issue
Block a user