1- from typing import Optional , Callable , Any
1+ from typing import Optional , Callable
22from psycopg2 import connect , extensions
3- from multiprocessing import Process , Pipe , connection
3+ from multiprocessing import Process , Pipe
44import time
55from select import select
66
7+
78POSTGRESQL_CHANNEL_NAME = "casbin_role_watcher"
89
910
@@ -13,12 +14,19 @@ def casbin_subscription(
1314 user : str ,
1415 password : str ,
1516 port : Optional [int ] = 5432 ,
17+ dbname : Optional [str ] = "postgres" ,
1618 delay : Optional [int ] = 2 ,
1719 channel_name : Optional [str ] = POSTGRESQL_CHANNEL_NAME ,
1820):
1921 # delay connecting to postgresql (postgresql connection failure)
2022 time .sleep (delay )
21- conn = connect (host = host , port = port , user = user , password = password )
23+ conn = connect (
24+ host = host ,
25+ port = port ,
26+ user = user ,
27+ password = password ,
28+ dbname = dbname
29+ )
2230 # Can only receive notifications when not in transaction, set this for easier usage
2331 conn .set_isolation_level (extensions .ISOLATION_LEVEL_AUTOCOMMIT )
2432 curs = conn .cursor ()
@@ -41,6 +49,7 @@ def __init__(
4149 user : str ,
4250 password : str ,
4351 port : Optional [int ] = 5432 ,
52+ dbname : Optional [str ] = "postgres" ,
4453 channel_name : Optional [str ] = POSTGRESQL_CHANNEL_NAME ,
4554 start_process : Optional [bool ] = True ,
4655 ):
@@ -50,6 +59,7 @@ def __init__(
5059 self .port = port
5160 self .user = user
5261 self .password = password
62+ self .dbname = dbname
5363 self .channel_name = channel_name
5464 self .subscribed_process = self .create_subscriber_process (start_process )
5565
@@ -69,6 +79,7 @@ def create_subscriber_process(
6979 self .user ,
7080 self .password ,
7181 self .port ,
82+ self .dbname ,
7283 delay ,
7384 self .channel_name ,
7485 ),
@@ -89,6 +100,7 @@ def update(self):
89100 port = self .port ,
90101 user = self .user ,
91102 password = self .password ,
103+ dbname = self .dbname ,
92104 )
93105 # Can only receive notifications when not in transaction, set this for easier usage
94106 conn .set_isolation_level (extensions .ISOLATION_LEVEL_AUTOCOMMIT )
0 commit comments