Plain is headed towards 1.0! Subscribe for development updates →

 1# Generated by Plain 0.52.2 on 2025-07-17 02:27
 2
 3import plain.models.deletion
 4from plain import models
 5from plain.models import migrations
 6
 7
 8class Migration(migrations.Migration):
 9    initial = True
10
11    dependencies = []
12
13    operations = [
14        migrations.CreateModel(
15            name="Trace",
16            fields=[
17                ("id", models.BigAutoField(auto_created=True, primary_key=True)),
18                ("trace_id", models.CharField(max_length=255)),
19                ("start_time", models.DateTimeField()),
20                ("end_time", models.DateTimeField()),
21                ("root_span_name", models.TextField(default="", required=False)),
22                (
23                    "request_id",
24                    models.CharField(default="", max_length=255, required=False),
25                ),
26                (
27                    "session_id",
28                    models.CharField(default="", max_length=255, required=False),
29                ),
30                (
31                    "user_id",
32                    models.CharField(default="", max_length=255, required=False),
33                ),
34            ],
35            options={
36                "ordering": ["-start_time"],
37            },
38        ),
39        migrations.CreateModel(
40            name="Span",
41            fields=[
42                ("id", models.BigAutoField(auto_created=True, primary_key=True)),
43                ("span_id", models.CharField(max_length=255)),
44                ("name", models.CharField(max_length=255)),
45                ("kind", models.CharField(max_length=50)),
46                (
47                    "parent_id",
48                    models.CharField(default="", max_length=255, required=False),
49                ),
50                ("start_time", models.DateTimeField()),
51                ("end_time", models.DateTimeField()),
52                ("status", models.CharField(default="", max_length=50, required=False)),
53                ("span_data", models.JSONField(default=dict, required=False)),
54            ],
55            options={
56                "ordering": ["-start_time"],
57            },
58        ),
59        migrations.AddConstraint(
60            model_name="trace",
61            constraint=models.UniqueConstraint(
62                fields=("trace_id",), name="observer_unique_trace_id"
63            ),
64        ),
65        migrations.AddField(
66            model_name="span",
67            name="trace",
68            field=models.ForeignKey(
69                on_delete=plain.models.deletion.CASCADE,
70                related_name="spans",
71                to="plainobserver.trace",
72            ),
73        ),
74        migrations.AddIndex(
75            model_name="span",
76            index=models.Index(
77                fields=["trace", "span_id"], name="plainobserv_trace_i_89a97c_idx"
78            ),
79        ),
80        migrations.AddIndex(
81            model_name="span",
82            index=models.Index(fields=["trace"], name="plainobserv_trace_i_84958a_idx"),
83        ),
84        migrations.AddIndex(
85            model_name="span",
86            index=models.Index(
87                fields=["start_time"], name="plainobserv_start_t_cb47a3_idx"
88            ),
89        ),
90        migrations.AddConstraint(
91            model_name="span",
92            constraint=models.UniqueConstraint(
93                fields=("trace", "span_id"), name="observer_unique_span_id"
94            ),
95        ),
96    ]