Missed the attachment. Apologies :(

PFA.

Thanks and Regards,
Aditya Toshniwal
Software Engineer | EnterpriseDB Software Solutions | Pune
"Don't Complain about Heat, Plant a tree"

On Mon, Jun 4, 2018 at 3:12 PM, Aditya Toshniwal <
aditya.toshni...@enterprisedb.com> wrote:

> Hi Hackers,
>
> I missed one part here. There is a constraint on port in in sqlite config
> database also, and is not allowing ports below 1024.
> PFA patch - part2 which includes constraint change and migration script
> for the db file.
> Kindly review.
>
> Thanks and Regards,
> Aditya Toshniwal
> Software Engineer | EnterpriseDB Software Solutions | Pune
> "Don't Complain about Heat, Plant a tree"
>
> On Fri, May 18, 2018 at 3:43 PM, Dave Page <dp...@pgadmin.org> wrote:
>
>> Thanks, applied.
>>
>> On Wed, May 16, 2018 at 2:34 PM, Victoria Henry <vhe...@pivotal.io>
>> wrote:
>>
>>> Hi Aditya,
>>>
>>> Looks good to us!
>>>
>>> Sincerely,
>>>
>>> Anthony & Victoria
>>>
>>>
>>> On Wed, May 16, 2018 at 7:24 AM Aditya Toshniwal <
>>> aditya.toshni...@enterprisedb.com> wrote:
>>>
>>>> Hi Hackers,
>>>>
>>>> PFA patch to allow server port number below 1024 till 1 in Create
>>>> Server dialog.
>>>>
>>>> Thanks and Regards,
>>>> Aditya Toshniwal
>>>> Software Engineer | EnterpriseDB Software Solutions | Pune
>>>> "Don't Complain about Heat, Plant a tree"
>>>>
>>>
>>
>>
>> --
>> Dave Page
>> Blog: http://pgsnake.blogspot.com
>> Twitter: @pgsnake
>>
>> EnterpriseDB UK: http://www.enterprisedb.com
>> The Enterprise PostgreSQL Company
>>
>
>
diff --git a/web/migrations/versions/7c56ea250085_.py b/web/migrations/versions/7c56ea250085_.py
new file mode 100644
index 0000000..24af349
--- /dev/null
+++ b/web/migrations/versions/7c56ea250085_.py
@@ -0,0 +1,90 @@
+
+"""Change server port constraint to allow port below 1024 RM#3307
+
+Revision ID: 7c56ea250085
+Revises: a68b374fe373
+Create Date: 2018-06-04 14:23:31.472645
+
+"""
+from alembic import op
+import sqlalchemy as sa
+
+from pgadmin.model import db
+
+# revision identifiers, used by Alembic.
+revision = '7c56ea250085'
+down_revision = 'a68b374fe373'
+branch_labels = None
+depends_on = None
+
+
+def upgrade():
+    # To Save previous data
+    db.engine.execute("ALTER TABLE server RENAME TO server_old")
+
+    # Create table with new constraint definition
+    db.engine.execute("""
+            CREATE TABLE server (
+            id	INTEGER NOT NULL,
+            user_id	INTEGER NOT NULL,
+            servergroup_id	INTEGER NOT NULL,
+            name	VARCHAR(128) NOT NULL,
+            host	VARCHAR(128),
+            port	INTEGER NOT NULL CHECK(port >= 1 AND port <= 65534),
+            maintenance_db	VARCHAR(64),
+            username	VARCHAR(64) NOT NULL,
+            password	VARCHAR(64),
+            role	VARCHAR(64),
+            ssl_mode	VARCHAR(16) NOT NULL CHECK(ssl_mode IN
+                ( 'allow' , 'prefer' , 'require' , 'disable' ,
+                  'verify-ca' , 'verify-full' )
+            ),
+            comment	VARCHAR(1024),
+            discovery_id	VARCHAR(128),
+            hostaddr	TEXT(1024),
+            db_res	TEXT,
+            passfile	TEXT,
+            sslcert	TEXT,
+            sslkey	TEXT,
+            sslrootcert	TEXT,
+            sslcrl	TEXT,
+            sslcompression	INTEGER DEFAULT 0,
+            bgcolor TEXT(10),
+            fgcolor TEXT(10),
+            service TEXT,
+            use_ssh_tunnel INTEGER DEFAULT 0,
+            tunnel_host TEXT,
+            tunnel_port TEXT,
+            tunnel_username TEXT,
+            tunnel_authentication INTEGER DEFAULT 0,
+            tunnel_identity_file TEXT,
+            PRIMARY KEY(id),
+            FOREIGN KEY(user_id) REFERENCES user(id),
+            FOREIGN KEY(servergroup_id) REFERENCES servergroup(id)
+        )
+    """)
+
+    # Copy old data again into table
+    db.engine.execute("""
+    INSERT INTO server (
+        id, user_id, servergroup_id, name, host, port, maintenance_db,
+        username, password, role, ssl_mode, comment, discovery_id, hostaddr,
+        db_res, passfile, sslcert, sslkey, sslrootcert, sslcrl,
+        sslcompression, bgcolor, fgcolor, service, use_ssh_tunnel,
+        tunnel_host, tunnel_port, tunnel_username, tunnel_authentication,
+        tunnel_identity_file
+
+    ) SELECT
+        id, user_id, servergroup_id, name, host, port, maintenance_db,
+        username, password, role, ssl_mode, comment, discovery_id, hostaddr,
+        db_res, passfile, sslcert, sslkey, sslrootcert, sslcrl,
+        sslcompression, bgcolor, fgcolor, service, use_ssh_tunnel,
+        tunnel_host, tunnel_port, tunnel_username, tunnel_authentication,
+        tunnel_identity_file
+    FROM server_old""")
+
+    # Remove old data
+    db.engine.execute("DROP TABLE server_old")
+
+def downgrade():
+    pass
diff --git a/web/pgadmin/model/__init__.py b/web/pgadmin/model/__init__.py
index c3171ce..df88116 100644
--- a/web/pgadmin/model/__init__.py
+++ b/web/pgadmin/model/__init__.py
@@ -29,7 +29,7 @@ from flask_sqlalchemy import SQLAlchemy
 #
 ##########################################################################
 
-SCHEMA_VERSION = 15
+SCHEMA_VERSION = 16
 
 ##########################################################################
 #
@@ -111,7 +111,7 @@ class Server(db.Model):
     hostaddr = db.Column(db.String(128), nullable=True)
     port = db.Column(
         db.Integer(),
-        db.CheckConstraint('port >= 1024 AND port <= 65534'),
+        db.CheckConstraint('port >= 1 AND port <= 65534'),
         nullable=False)
     maintenance_db = db.Column(db.String(64), nullable=True)
     username = db.Column(db.String(64), nullable=False)

Reply via email to