Hi all,

Status update: no luck yet.

I am currently trying to use *Azure Database for PostgreSQL server *with a 
Private Endpoint that links the server to the same VNet where the app 
server resides. SSL has been disabled on the db server. I have allowed all 
IP address to contact the db server in the testing phase.

On the app server, I am able connect to the db server using pgAdmin. I also 
tested the db connection successfully using a Python script that utilizes 
psycopg2 and sslmode=require (even though SSL is disabled). (See 
at 
https://docs.microsoft.com/en-us/azure/postgresql/flexible-server/connect-python.)

Now, the db server only allows Postgre version up to 11. Arches needs 
version 12. There is a "flexible" version of the server that goes to 12 but 
it's a preview/beta version and I ran into some other issues with it, so I 
discarded that route. Perhaps the version discrepancy is my issue at the 
moment?

When running *setup_db*, I get this error . So, I've actually only made 
backward progress because now I only get to line 30, haha! I think I'll 
give this a little break and try again another time, starting from scratch. 
Thank you for all your suggestions so far.

(ENV) C:\Projects\arches_parks>python manage.py setup_db
Are you sure you want to destroy and rebuild your database? [y/N] y
Traceback (most recent call last):
  File "manage.py", line 30, in <module>
    execute_from_command_line(sys.argv)
  File 
"C:\Projects\ENV\lib\site-packages\django\core\management\__init__.py", 
line 381, in execute_from_command_line
    utility.execute()
  File 
"C:\Projects\ENV\lib\site-packages\django\core\management\__init__.py", 
line 375, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "C:\Projects\ENV\lib\site-packages\django\core\management\base.py", 
line 323, in run_from_argv
    self.execute(*args, **cmd_options)
  File "C:\Projects\ENV\lib\site-packages\django\core\management\base.py", 
line 364, in execute
    output = self.handle(*args, **options)
  File 
"C:\Projects\ENV\lib\site-packages\arches\management\commands\setup_db.py", 
line 52, in handle
    self.setup_db()
  File 
"C:\Projects\ENV\lib\site-packages\arches\management\commands\setup_db.py", 
line 180, in setup_db
    conninfo = self.get_connection()
  File 
"C:\Projects\ENV\lib\site-packages\arches\management\commands\setup_db.py", 
line 103, in get_connection
    cancreate = cursor.fetchone()[0]
TypeError: 'NoneType' object is not subscriptable

On Tuesday, April 20, 2021 at 12:41:48 PM UTC-7 [email protected] wrote:

> Also, it looks like the failure comes on this specific line 
> https://github.com/archesproject/arches/blob/master/arches/management/commands/setup_db.py#L137.
>  
> As I recall, that line cleans up existing connections, but it is not 
> technically necessary for the process if you don't have other connections 
> to the database. So you could also try simply commenting out that line 
> before running the command and seeing what happens.
>
> Adam
>
> On Tue, Apr 20, 2021 at 3:33 AM [email protected] <
> [email protected]> wrote:
>
>> Markus, we are running a duel Azure server setup on Windows with no 
>> issues - but only at 5.0. 
>>
>> As we are running it in a private network we've not needed to enable SSL 
>> but for a side project I have connected it up to Azure Database for 
>> Postgresql Server instance and I have to add  the sslmode option to the DB 
>> connection string.
>>
>> DATABASES = {
>>     "default": {
>>         "ENGINE": "django.contrib.gis.db.backends.postgis",
>>         "NAME": get_env_variable("PGDBNAME"),
>>         "USER": get_env_variable("PGUSERNAME"),
>>         "PASSWORD": get_env_variable("PGPASSWORD"),
>>         "HOST": get_env_variable("PGHOST"),
>>         "PORT": get_env_variable("PGPORT"),
>>         "POSTGIS_TEMPLATE": "template_postgis",
>>         "OPTIONS": {
>>             "sslmode": get_env_variable("PGSSLMODE") #needs to use '
>> *require*' if connecting to Azure Database for Postgresql
>>         },
>>     }
>> }
>>
>> If you can, perhaps test with SSL disabled so you can isolate the issue 
>> further.
>>
>> On Tuesday, April 20, 2021 at 12:56:09 AM UTC+1 Markus S. wrote:
>>
>>> Hi,
>>>
>>> Thanks for all the tips. After a fresh install, when I run *setup_db*, 
>>> I still get the following error, pasted below.
>>>
>>> On the app server, I can connect to the database server without issue 
>>> using pgAdmin. I have created the blank db for Arches there, as per Ryan's 
>>> suggestion. The postgis template exists on the server and I used it as a 
>>> template to create the db. This should not be a port issue since I am able 
>>> to connect with pgAdmin.
>>>
>>> I have set the db connection parameters in the *settings_local* file. I 
>>> know the host, database name, username and password strings should be 
>>> correct because I get a different error if I intentionally mess them up. 
>>> The error below is likely caused by something else, and it seems that the 
>>> SSL connection just breaks right away. It is not complaining about SSL 
>>> version, but I might look into that a bit.
>>>
>>> (ENV) C:\Projects\arches_parks>python manage.py setup_db
>>> Are you sure you want to destroy and rebuild your database? [y/N] y
>>> Drop and recreate the database...
>>>
>>> SELECT pg_terminate_backend(pid) FROM pg_stat_activity
>>>     WHERE datname IN ('azure_arches', 'template_postgis');
>>> Traceback (most recent call last):
>>>   File "manage.py", line 30, in <module>
>>>     execute_from_command_line(sys.argv)
>>>   File 
>>> "C:\Projects\ENV\lib\site-packages\django\core\management\__init__.py", 
>>> line 381, in execute_from_command_line
>>>     utility.execute()
>>>   File 
>>> "C:\Projects\ENV\lib\site-packages\django\core\management\__init__.py", 
>>> line 375, in execute
>>>     self.fetch_command(subcommand).run_from_argv(self.argv)
>>>   File 
>>> "C:\Projects\ENV\lib\site-packages\django\core\management\base.py", line 
>>> 323, in run_from_argv
>>>     self.execute(*args, **cmd_options)
>>>   File 
>>> "C:\Projects\ENV\lib\site-packages\django\core\management\base.py", line 
>>> 364, in execute
>>>     output = self.handle(*args, **options)
>>>   File 
>>> "C:\Projects\ENV\lib\site-packages\arches\management\commands\setup_db.py", 
>>> line 52, in handle
>>>     self.setup_db()
>>>   File 
>>> "C:\Projects\ENV\lib\site-packages\arches\management\commands\setup_db.py", 
>>> line 186, in setup_db
>>>     self.drop_and_recreate_db(cursor)
>>>   File 
>>> "C:\Projects\ENV\lib\site-packages\arches\management\commands\setup_db.py", 
>>> line 137, in drop_and_recreate_db
>>>     cursor.execute(terminate_sql)
>>> *psycopg2.errors.AdminShutdown: terminating connection due to 
>>> administrator command*
>>> *SSL connection has been closed unexpectedly*
>>>
>>> On Wednesday, April 14, 2021 at 11:30:27 AM UTC-7 [email protected] 
>>> wrote:
>>>
>>>> Hi Markus, I use this setup for my installations. It works as expected, 
>>>> but you make a few good points. This is definitely a section of the 
>>>> documentation I've been wanting to update for a while... 
>>>> https://github.com/archesproject/arches-docs/issues/115
>>>>
>>>> For your Azure connection issues, like Ryan said it could be a firewall 
>>>> issue. Make sure your db server allows access via port 5432 from your app 
>>>> server. On AWS I found that I needed to allow access from the app server's 
>>>> *private* ip address, not public one, to facilitate this connection. 
>>>> Easiest of course would be to open up 5432 to any incoming connections, 
>>>> but 
>>>> that's not a very secure solution....
>>>>
>>>> As for the local postgres installation, originally arches did require 
>>>> the postgres client pqsl locally to facilitate all of the setup_db 
>>>> commands, but we've tried to factor that out (
>>>> https://github.com/archesproject/arches/issues/4803). It's really a 
>>>> consequence of relying for a long time on an installation process that 
>>>> expects a postgres superuser (discussed a bit here: 
>>>> https://github.com/archesproject/arches/issues/2636). Ultimately, you 
>>>> can now run all of the normal arches development management commands 
>>>> without having postgres/psql locally, but you will need to create your 
>>>> database ahead of time and add the postgis and uuid-ossp extensions to it.
>>>>
>>>> Hope that helps a bit,
>>>> Adam
>>>>
>>>> On Wed, Apr 14, 2021 at 1:26 PM Markus S. <[email protected]> wrote:
>>>>
>>>>> Hi Ryan,
>>>>>
>>>>> Thanks, this is very helpful. That's pretty much what I had already 
>>>>> tried. On the app server, I had used PGAdmin to connect to the db server 
>>>>> and the connection was successful. Using pgAdmin, I had also created the 
>>>>> blank db with the PostGIS template on it.
>>>>>
>>>>> It sounds like I just need to try again and double-check the settings 
>>>>> file. I'll report back my findings.
>>>>>
>>>>> Markus
>>>>> On Wednesday, April 14, 2021 at 11:15:41 AM UTC-7 Ryan Anderson wrote:
>>>>>
>>>>>> Hi Markus,
>>>>>>
>>>>>> I've done this a bunch with Amazon's RDS service. It sounds like 
>>>>>> generally you are on the right track. More detail about the errors 
>>>>>> you're 
>>>>>> seeing would be helpful, but I'll try to recount additional things that 
>>>>>> may 
>>>>>> be necessary here.
>>>>>>
>>>>>> First, check that your postgres port is open on your db server 
>>>>>> (usually this is 5432) and accessible from your application server. 
>>>>>> Sometimes I do this by installing psql on the application server and 
>>>>>> trying 
>>>>>> to connect to the db server with that. On AWS there are some network 
>>>>>> settings that need to be tweaked to make sure that the application and 
>>>>>> db 
>>>>>> server can talk to each other.
>>>>>>
>>>>>> The command to connect should be something like this:
>>>>>> `psql -U username -h db_server`
>>>>>>
>>>>>> If this works, then add a postgis template to your db instance 
>>>>>> (instructions for this can be found here 
>>>>>> <https://postgis.net/install/>) and then try manually creating your 
>>>>>> project database from this template in psql. This will get overwritten 
>>>>>> when 
>>>>>> you run setup_db/load_package in Arches, but sometimes Arches likes to 
>>>>>> see 
>>>>>> that there is already a database there.
>>>>>>
>>>>>> If things are still not working at this point then double check your 
>>>>>> settings/settings_local.py file.
>>>>>>
>>>>>> Arches does not require that you have postgres server installed on 
>>>>>> the application server, but it is usually helpful in these situations to 
>>>>>> have the psql client installed - which requires you to select a version 
>>>>>> you 
>>>>>> would like it to work with.
>>>>>>
>>>>>> I hope this helps. Post back with any updates or additional info.
>>>>>>
>>>>>> Cheers,
>>>>>> Ryan
>>>>>>
>>>>>>
>>>>>> On Wednesday, April 14, 2021 at 10:51:21 AM UTC-7 Markus S. wrote:
>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> Does anyone have experience installing Arches 5.1 using two servers, 
>>>>>>> one for the web server/app and one for the PostgreSQL database? I'm 
>>>>>>> looking 
>>>>>>> at doing that on Azure. It does not seem as simple as just setting the 
>>>>>>> database server host name and port in the settings file (I tried it). 
>>>>>>> Furthermore, the Arches app installation process seems to require the 
>>>>>>> Postgre 12 dependency on the app's server, implying that the default 
>>>>>>> expectation is that the db and the app reside on the same server.
>>>>>>>
>>>>>>> Any tips on this would be appreciated.
>>>>>>>
>>>>>>> Markus
>>>>>>>
>>>>>> -- 
>>>>> -- To post, send email to [email protected]. To unsubscribe, 
>>>>> send email to [email protected]. For more information, 
>>>>> visit https://groups.google.com/d/forum/archesproject?hl=en
>>>>> --- 
>>>>> You received this message because you are subscribed to the Google 
>>>>> Groups "Arches Project" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>>> an email to [email protected].
>>>>> To view this discussion on the web visit 
>>>>> https://groups.google.com/d/msgid/archesproject/657bf66c-dd85-49b0-8567-d6c50e2ef793n%40googlegroups.com
>>>>>  
>>>>> <https://groups.google.com/d/msgid/archesproject/657bf66c-dd85-49b0-8567-d6c50e2ef793n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>>
>>>> -- 
>> -- To post, send email to [email protected]. To unsubscribe, 
>> send email to [email protected]. For more information, 
>> visit https://groups.google.com/d/forum/archesproject?hl=en
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "Arches Project" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected].
>>
> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/archesproject/7ade08a5-aebb-49fe-8398-a2a0ed4e9112n%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/archesproject/7ade08a5-aebb-49fe-8398-a2a0ed4e9112n%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
-- To post, send email to [email protected]. To unsubscribe, send 
email to [email protected]. For more information, 
visit https://groups.google.com/d/forum/archesproject?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Arches Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/archesproject/214f0cc8-0788-414c-a77b-c1c1d8ed4431n%40googlegroups.com.

Reply via email to