From 65d397d346429ad90fc9c8f4882b6e89b3c95395 Mon Sep 17 00:00:00 2001
From: Mohammad Torkashvand <mohammad.torkashvand@geant.org>
Date: Wed, 20 Mar 2024 12:34:48 +0100
Subject: [PATCH] alter email in partner table and make it required

---
 gso/db/models.py                              | 11 +++----
 ..._edit_partner_table_making_some_fields_.py | 30 +++++++++++++++++++
 2 files changed, 36 insertions(+), 5 deletions(-)
 create mode 100644 gso/migrations/versions/2024-03-20_d61c0f92da1e_edit_partner_table_making_some_fields_.py

diff --git a/gso/db/models.py b/gso/db/models.py
index 350aa907..02d8c59c 100644
--- a/gso/db/models.py
+++ b/gso/db/models.py
@@ -33,18 +33,19 @@ class PartnerTable(BaseModel):
     __tablename__ = "partners"
 
     partner_id = mapped_column(String, server_default=text("uuid_generate_v4"), primary_key=True)
-    name = mapped_column(String, unique=True)
-    email = mapped_column(String, unique=True, nullable=True)
+    name = mapped_column(String, unique=True, nullable=True)
+    email = mapped_column(String, unique=True, nullable=False)
+    partner_type = mapped_column(Enum(PartnerType), nullable=False)
+
     as_number = mapped_column(
-        String, unique=True
+        String, unique=True, nullable=True
     )  # the as_number and as_set are mutually exclusive. if you give me one I don't need the other
-    as_set = mapped_column(String)
+    as_set = mapped_column(String, nullable=True)
     route_set = mapped_column(String, nullable=True)
     black_listed_as_sets = mapped_column(ARRAY(String), nullable=True)
     additional_routers = mapped_column(ARRAY(String), nullable=True)
     additional_bgp_speakers = mapped_column(ARRAY(String), nullable=True)
 
-    partner_type = mapped_column(Enum(PartnerType), nullable=False)
     created_at = mapped_column(UtcTimestamp, server_default=text("current_timestamp"), nullable=False)
     updated_at = mapped_column(
         UtcTimestamp, server_default=text("current_timestamp"), nullable=False, onupdate=text("current_timestamp")
diff --git a/gso/migrations/versions/2024-03-20_d61c0f92da1e_edit_partner_table_making_some_fields_.py b/gso/migrations/versions/2024-03-20_d61c0f92da1e_edit_partner_table_making_some_fields_.py
new file mode 100644
index 00000000..8449597f
--- /dev/null
+++ b/gso/migrations/versions/2024-03-20_d61c0f92da1e_edit_partner_table_making_some_fields_.py
@@ -0,0 +1,30 @@
+"""Edit Partner table, Making some fields required.
+
+Revision ID: d61c0f92da1e
+Revises: eaed66b04913
+Create Date: 2024-03-20 12:29:24.145489
+
+"""
+import sqlalchemy as sa
+from alembic import op
+
+# revision identifiers, used by Alembic.
+revision = 'd61c0f92da1e'
+down_revision = 'eaed66b04913'
+branch_labels = None
+depends_on = None
+
+
+def upgrade() -> None:
+    conn = op.get_bind()
+    conn.execute(
+        sa.text(
+            """UPDATE partners SET email = 'goat@geant.org' WHERE name='GEANT'"""))
+
+    op.alter_column('partners', 'email', existing_type=sa.String(), nullable=False)
+
+
+def downgrade() -> None:
+    # ### commands auto generated by Alembic - please adjust! ###
+    op.alter_column('partners', 'email', existing_type=sa.String(), nullable=True)
+    # ### end Alembic commands ###
-- 
GitLab