diff --git a/pgmanage/app/migrations/0026_erdlayout.py b/pgmanage/app/migrations/0026_erdlayout.py new file mode 100644 index 000000000..1f8c74d21 --- /dev/null +++ b/pgmanage/app/migrations/0026_erdlayout.py @@ -0,0 +1,26 @@ +# Generated by Django 4.2.19 on 2025-04-30 13:59 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('app', '0025_monwidgetsconnections_position_and_more'), + ] + + operations = [ + migrations.CreateModel( + name='ERDLayout', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=200)), + ('layout', models.JSONField()), + ('connection', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='app.connection')), + ], + options={ + 'unique_together': {('connection', 'name')}, + }, + ), + ] diff --git a/pgmanage/app/models/main.py b/pgmanage/app/models/main.py index 32f1d7620..3ab63d8dd 100644 --- a/pgmanage/app/models/main.py +++ b/pgmanage/app/models/main.py @@ -238,3 +238,12 @@ class Job(models.Model): utility_pid = models.IntegerField(null=True) process_state = models.IntegerField(null=True) connection = models.ForeignKey(Connection, on_delete=models.CASCADE, null=True) + + +class ERDLayout(models.Model): + connection = models.ForeignKey(Connection, on_delete=models.CASCADE) + name = models.CharField(max_length=200) + layout = models.JSONField() + + class Meta: + unique_together = ["connection", "name"] diff --git a/pgmanage/app/static/pgmanage_frontend/src/components/ERDTab.vue b/pgmanage/app/static/pgmanage_frontend/src/components/ERDTab.vue index 4fa5da22b..91a93bb02 100644 --- a/pgmanage/app/static/pgmanage_frontend/src/components/ERDTab.vue +++ b/pgmanage/app/static/pgmanage_frontend/src/components/ERDTab.vue @@ -1,5 +1,26 @@