From 6e703fb52e70e6b0f5ce9957c37dfd0041b9dc05 Mon Sep 17 00:00:00 2001
From: Erik Reid <erik.reid@geant.org>
Date: Mon, 20 Mar 2023 07:17:14 +0100
Subject: [PATCH] migration for initial tables

---
 resource_management/alembic.ini               |  5 +-
 .../1983660b3e64_create_initial_tables.py     | 67 -----------------
 .../versions/1ec562888fd6_initial_tables.py   | 75 +++++++++++++++++++
 3 files changed, 78 insertions(+), 69 deletions(-)
 delete mode 100644 resource_management/migrations/versions/1983660b3e64_create_initial_tables.py
 create mode 100644 resource_management/migrations/versions/1ec562888fd6_initial_tables.py

diff --git a/resource_management/alembic.ini b/resource_management/alembic.ini
index 01d7a46..22d9b90 100644
--- a/resource_management/alembic.ini
+++ b/resource_management/alembic.ini
@@ -3,5 +3,6 @@
 # make sure the right line is un / commented depending on which schema you want
 # a migration for
 script_location = migrations
-# change this to run migrations from the command line
-sqlalchemy.url = mysql://dummy:dummy-pass@localhost/resources_test
+sqlalchemy.url = sqlite:////absolute/path/to/foo.db
+# or here is an example of a mysql dsn
+# sqlalchemy.url = mysql://dummy:dummy-pass@localhost/resources_db_name
diff --git a/resource_management/migrations/versions/1983660b3e64_create_initial_tables.py b/resource_management/migrations/versions/1983660b3e64_create_initial_tables.py
deleted file mode 100644
index ed1d804..0000000
--- a/resource_management/migrations/versions/1983660b3e64_create_initial_tables.py
+++ /dev/null
@@ -1,67 +0,0 @@
-"""create initial tables
-
-Revision ID: 1983660b3e64
-Revises:
-Create Date: 2022-12-18 14:16:34.695912
-
-"""
-from alembic import op
-import sqlalchemy as sa
-
-
-# revision identifiers, used by Alembic.
-revision = '1983660b3e64'
-down_revision = None
-branch_labels = None
-depends_on = None
-
-
-def upgrade() -> None:
-    op.create_table(
-        'nodes',
-        sa.Column('id', sa.Integer, primary_key=True),
-        sa.Column('fqdn', sa.String(256), nullable=False))
-
-    op.create_table(
-        'line_cards',
-        sa.Column('id', sa.Integer, primary_key=True),
-        sa.Column('slot', sa.Integer, nullable=False),
-        sa.Column('model', sa.String(256), nullable=False),
-        sa.Column('serial', sa.String(256), nullable=False),
-        sa.Column('description', sa.String(256), nullable=False),
-        sa.Column(
-            'node_id',
-            sa.Integer,
-            sa.ForeignKey('nodes.id'),
-            nullable=False))
-
-    op.create_table(
-        'ports',
-        sa.Column('id', sa.Integer, primary_key=True),
-        sa.Column('pic', sa.Integer, nullable=False),
-        sa.Column('position', sa.Integer, nullable=False),
-        sa.Column('interface', sa.String(256), nullable=True),
-        sa.Column('cable', sa.String(256), nullable=True),
-        sa.Column('cable', sa.String(256), nullable=True),
-        sa.Column(
-            'line_card_id',
-            sa.Integer,
-            sa.ForeignKey('line_cards.id'),
-            nullable=False))
-
-    op.create_table(
-        'port_speed_capabilities',
-        sa.Column('id', sa.Integer, primary_key=True),
-        sa.Column('speed', sa.String(256), nullable=True),
-        sa.Column(
-            'port_id',
-            sa.Integer,
-            sa.ForeignKey('ports.id'),
-            nullable=False))
-
-
-def downgrade() -> None:
-    op.drop_table('port_speed_capabilities')
-    op.drop_table('ports')
-    op.drop_table('line_cards')
-    op.drop_table('nodes')
diff --git a/resource_management/migrations/versions/1ec562888fd6_initial_tables.py b/resource_management/migrations/versions/1ec562888fd6_initial_tables.py
new file mode 100644
index 0000000..542649b
--- /dev/null
+++ b/resource_management/migrations/versions/1ec562888fd6_initial_tables.py
@@ -0,0 +1,75 @@
+"""initial tables
+
+Revision ID: 1ec562888fd6
+Revises: 
+Create Date: 2023-03-20 07:05:18.984767
+
+"""
+from alembic import op
+import sqlalchemy as sa
+
+
+# revision identifiers, used by Alembic.
+revision = '1ec562888fd6'
+down_revision = None
+branch_labels = None
+depends_on = None
+
+
+def upgrade() -> None:
+
+    op.create_table(
+        'routers',
+        sa.Column('id', sa.Integer, primary_key=True),
+        sa.Column('fqdn', sa.String(256), nullable=False))
+
+    op.create_table(
+        'lags',
+        sa.Column('id', sa.Integer, primary_key=True),
+        sa.Column('name', sa.String, nullable=False),
+        sa.Column(
+            'availability',
+            sa.Enum('AVAILABLE', 'USED', 'RESERVED', name='lag_availability'),
+            nullable=False),
+        sa.Column(
+            'router_id',
+            sa.Integer,
+            sa.ForeignKey('routers.id'),
+            nullable=False))
+
+    op.create_table(
+        'physical_interfaces',
+        sa.Column('id', sa.Integer, primary_key=True),
+        sa.Column('name', sa.String, nullable=False),
+        sa.Column(
+            'availability',
+            sa.Enum('AVAILABLE', 'USED', 'RESERVED', name='lag_availability'),
+            nullable=False),
+        sa.Column(
+            'router_id',
+            sa.Integer,
+            sa.ForeignKey('routers.id'),
+            nullable=False),
+        sa.Column(
+            'lag_id',
+            sa.Integer,
+            sa.ForeignKey('lags.id'),
+            nullable=True))
+
+    op.create_table(
+        'logical_interfaces',
+        sa.Column('id', sa.Integer, primary_key=True),
+        sa.Column('name', sa.String, nullable=False),
+        sa.Column(
+            'physical_id',
+            sa.Integer,
+            sa.ForeignKey('physical_interfaces.id'),
+            nullable=False))
+
+
+def downgrade() -> None:
+    op.drop_table('logical_interfaces')
+    op.drop_table('physical_interfaces')
+    op.drop_table('lags')
+    op.drop_table('routers')
+
-- 
GitLab