From 088f1da77a072caa5778c6d4b2e96861d835552f Mon Sep 17 00:00:00 2001 From: YueGuobin Date: Fri, 14 Aug 2026 00:20:08 +0800 Subject: [PATCH] docker: persist extra_configs in the template DB table The extra_configs schema field needs a column on the docker_templates table to actually round-trip through the controller DB (the schema alone is accepted but dropped by the SQLAlchemy model mapping). Add the JSON column and an Alembic migration so existing databases get it on upgrade. --- gns3server/db/models/templates.py | 1 + ...b_add_extra_configs_to_docker_templates.py | 26 +++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 gns3server/db_migrations/versions/8f2a1c4e9d3b_add_extra_configs_to_docker_templates.py diff --git a/gns3server/db/models/templates.py b/gns3server/db/models/templates.py index f0100352c..5c271e436 100644 --- a/gns3server/db/models/templates.py +++ b/gns3server/db/models/templates.py @@ -78,6 +78,7 @@ class DockerTemplate(Template): console_resolution = Column(String) extra_hosts = Column(String) extra_volumes = Column(JSON) + extra_configs = Column(JSON) memory = Column(Integer) cpus = Column(Float) custom_adapters = Column(JSON) diff --git a/gns3server/db_migrations/versions/8f2a1c4e9d3b_add_extra_configs_to_docker_templates.py b/gns3server/db_migrations/versions/8f2a1c4e9d3b_add_extra_configs_to_docker_templates.py new file mode 100644 index 000000000..2be50f287 --- /dev/null +++ b/gns3server/db_migrations/versions/8f2a1c4e9d3b_add_extra_configs_to_docker_templates.py @@ -0,0 +1,26 @@ +"""add extra_configs to docker templates table + +Revision ID: 8f2a1c4e9d3b +Revises: f0b0de2a9 +Create Date: 2026-08-14 10:00:00.000000 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '8f2a1c4e9d3b' +down_revision = 'f0b0de2a9' +branch_labels = None +depends_on = None + + +def upgrade() -> None: + + op.add_column('docker_templates', sa.Column('extra_configs', sa.JSON())) + + +def downgrade() -> None: + + op.drop_column('docker_templates', 'extra_configs')