public inbox for [email protected]  
help / color / mirror / Atom feed
From: Adrian Grucza <[email protected]>
To: Dave Cramer <[email protected]>
Cc: Jon Raiford <[email protected]>
Cc: PostgreSQL mailing lists <[email protected]>
Subject: Re: How to create an ODBC datasource in CI
Date: Sat, 30 Mar 2024 22:45:04 +1100
Message-ID: <CADF4wWrUbUMqKVTQbEQ9eKftjB68igwUWG+nKj_LQs5-vkYZFQ@mail.gmail.com> (raw)
In-Reply-To: <CADK3HHLy-h_dGx-DjmWkOaFL_ginc=38D1VgvYUkURJg4aFAqA@mail.gmail.com>
References: <CADK3HH+nrL9S7vLfM0ExQ4Wq-nPZhS1mSSv6m6V38wJUceaE4A@mail.gmail.com>
	<SA1PR17MB53505317C9E02F989A9D455FBE3A2@SA1PR17MB5350.namprd17.prod.outlook.com>
	<CADK3HHKG-yvTBAYP30vfpzjrt66BtVpMx1UDHv4PpQ6DPY-5ng@mail.gmail.com>
	<CADF4wWoEwaOSRj5a1Dc=BR-fN6KkHuoFLSoCfsJ9HvwjSKTR6g@mail.gmail.com>
	<CADK3HHJENmFdMk9fLKYWi2PfHjR3cSwHkSPboVwRStK4tYms4A@mail.gmail.com>
	<CADF4wWr2sMJ+RYOwe5PDNHobVm6dDLtKQfXLv59UcGyqr5-YgQ@mail.gmail.com>
	<CADK3HHLy-h_dGx-DjmWkOaFL_ginc=38D1VgvYUkURJg4aFAqA@mail.gmail.com>

You might consider adding an optional "DsnProperties" string parameter to
regress.ps1. When provided, the script could use that property string to
create the DSN instead of calling input-dsninfo to prompt for the
properties. In general I think it's preferable for CI to run tests using
the same script that people use when developing psqlODBC locally. That way
if the script ever breaks, then the break will be detected in CI. But I
think it's also useful to test the MSI installer, which regress.ps1 doesn't
do.



Adrian Grucza
Technical Lead
Office: +61390185800
The contents of this email originated from Iress. For this purpose Iress includes Iress Limited and/or any of its subsidiaries, holding companies and trading entities.
​​If you have received this email in error please notify the sender immediately and delete this email.
On Sat, 30 Mar 2024 at 22:09, Dave Cramer <[email protected]> wrote:

>
>
> *CAUTION: *This Email is from an EXTERNAL source. Ensure you trust this
> sender before clicking on any links or attachments.
>
>
>
>
>
> On Sat, 30 Mar 2024 at 06:17, Adrian Grucza <[email protected]>
> wrote:
>
>> If your aim is to run the regression tests then winbuild/regress.ps1 does
>> everything for you: installs a dev version of the driver, creates a DSN for
>> it and runs the tests against a PostgreSQL server (which you could run in
>> Docker).
>>
> Well the problem is that it waits for input which we can't do on github
> actions
>
>>
>> But if you want to use the MSI installer, running that will install the
>> driver for you:
>>
>> Start-Process 'C:\\psqlodbc_x64.msi' '/quiet /passive' -PassThru |
>> Wait-Process;
>>
>> You then just need to create the DSN:
>>
>> Add-OdbcDsn -Name "MyPostgresDsn" -DsnType 'User' -Platform '64-bit'
>> -DriverName 'PostgreSQL Unicode(x64)'
>>
>> Set-OdbcDsn -Name "MyPostgresDsn" `
>>  -DsnType "User" `
>>  -SetPropertyValue @("Servername=${env:DB_HOST}" `
>>  ,'Port=5432' `
>>  ,"SSLMode=${env:SSL_MODE}" `
>>  ,'BoolsAsChar=0' `
>>  ,'FetchRefcursors=1' `
>>  ,'MaxVarcharSize=4094' `
>>  )
>>
>> Thanks,
>
> Will try this
>
> Dave
>
>>
>> Adrian Grucza
>> Technical Lead
>> Office: +61390185800
>> The contents of this email originated from Iress. For this purpose Iress
>> includes Iress Limited and/or any of its subsidiaries, holding companies
>> and trading entities.
>> If you have received this email in error please notify the sender
>> immediately and delete this email.
>> On Sat, 30 Mar 2024 at 6:53 pm, Dave Cramer <[email protected]> wrote:
>>
>>>
>>>
>>> *CAUTION: *This Email is from an EXTERNAL source. Ensure you trust this
>>> sender before clicking on any links or attachments.
>>>
>>>
>>>
>>>
>>> On Fri, 29 Mar 2024 at 18:49, Adrian Grucza <[email protected]>
>>> wrote:
>>>
>>>> winbuild/regress.ps1 uses RegisterRegdsn.exe (built from
>>>> test/RegisterRegdsn.c) to install the driver and register a data source.
>>>> You could use that, or you may find it easier to use the Wdac cmdlets
>>>> <https://urldefense.com/v3/__https://learn.microsoft.com/en-us/powershell/module/wdac/?view=windowsse...; in
>>>> PowerShell, specifically Add-OdbcDsn and Set-OdbcDsn.
>>>>
>>>>
>>> Yes, I saw those, was going to try them. I think the challenge is
>>> registering the driver first though.
>>>
>>> Dave
>>>
>>>>
>>>> [image: iress.com] <https://www.iress.com/;
>>>> Adrian Grucza
>>>> Technical Lead
>>>> Office: +61390185800
>>>> [email protected]
>>>> www.iress.com
>>>> Level 16 385 Bourke St
>>>> <https://urldefense.com/v3/__https://www.google.com/maps/search/385**ABourke**ASt**BMelbourne?entry=g...;
>>>>  Melbourne
>>>> <https://urldefense.com/v3/__https://www.google.com/maps/search/385**ABourke**ASt**BMelbourne?entry=g...;
>>>> ,  Victoria,  3000
>>>> The contents of this email originated from Iress. For this purpose
>>>> Iress includes Iress Limited and/or any of its subsidiaries, holding
>>>> companies and trading entities. If you have received this email in error
>>>> please notify the sender immediately and delete this email.
>>>> nosig
>>>>
>>> On Sat, 30 Mar 2024 at 2:12 am, Dave Cramer <[email protected]>
>>>> wrote:
>>>>
>>>>>
>>>>>
>>>>> *CAUTION: *This Email is from an EXTERNAL source. Ensure you trust
>>>>> this sender before clicking on any links or attachments.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Fri, 29 Mar 2024 at 08:41, Jon Raiford <[email protected]> wrote:
>>>>>
>>>>>> I’m not familiar with GitHub Actions, but I know you can create data
>>>>>> sources from the command line. This is all stored in the registry, which
>>>>>> you can update using the reg command.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/reg
>>>>>> <https://urldefense.com/v3/__https://learn.microsoft.com/en-us/windows-server/administration/windows-...;
>>>>>>
>>>>>>
>>>>>>
>>>>>> The easiest thing to do may be to create a data source manually and
>>>>>> export it into a .reg file. You can then either import the data source
>>>>>> using the reg file or just use it as a template to add the entries as you
>>>>>> like.
>>>>>>
>>>>>>
>>>>>> Just run Regedit and locate the data source you would like to export.
>>>>>>
>>>>>>
>>>>>>
>>>>>> 64-bit System Data Sources: \\HKLM\SOFTWARE\ODBC\
>>>>>> <https://urldefense.com/v3/__http://HKLM/SOFTWARE/ODBC/__;!!OSkwEA!kxnwxUJLKxa3Oc4LrkTTgAXa9D0wwxO8NO...;
>>>>>>
>>>>>> 32-bit System Data Sources: \\HKLM\SOFTWARE\WOW6432Node\ODBC\
>>>>>> <https://urldefense.com/v3/__http://HKLM/SOFTWARE/WOW6432Node/ODBC/__;!!OSkwEA!kxnwxUJLKxa3Oc4LrkTTgA...;
>>>>>>
>>>>>> 64-bit User Data Sources: \\HKCU\SOFTWARE\ODBC\
>>>>>>
>>>>>> 32-bit User Data Sources: \\HKCU\SOFTWARE\ODBC\
>>>>>> <https://urldefense.com/v3/__http://HKCU/SOFTWARE/ODBC/__;!!OSkwEA!kxnwxUJLKxa3Oc4LrkTTgAXa9D0wwxO8NO...;
>>>>>> <- This is mixed in with the 64-bit entries and the driver referenced
>>>>>> determines if 32/64
>>>>>>
>>>>>>
>>>>>>
>>>>>> Drivers are defined under the system keys under the section
>>>>>> ODBCINST.INI. Data sources are defined under the section ODBC.INI, both as
>>>>>> a folder containing the details of the data source as well as an entry
>>>>>> under “ODBC.INI\ODBC Data Sources”, which associates the data source with
>>>>>> the driver to use with it.
>>>>>>
>>>>>>
>>>>>>
>>>>>> I think if you view these entries in Regedit you will see the
>>>>>> relationships between everything. It may help to create a data source for
>>>>>> each type.
>>>>>>
>>>>>>
>>>>>>
>>>>>> The above describes how to create a static ODBC data source.
>>>>>> Alternatively you can use a file DSN or simply make a connection string
>>>>>> from your test case and avoid the data source completely. Although I
>>>>>> suppose you may want to do each in order to test each possibility.
>>>>>>
>>>>>>
>>>>>>
>>>>>> Let me know if you have any questions or need assistance.
>>>>>>
>>>>>>
>>>>>>
>>>>>> Jon
>>>>>>
>>>>>
>>>>> Hey Jon,
>>>>>
>>>>> Thanks, that will help immensely.
>>>>>
>>>>> It's been a while since I've done anything with Windows.
>>>>>
>>>>> Dave
>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> *From: *Dave Cramer <[email protected]>
>>>>>> *Date: *Friday, March 29, 2024 at 7:25 AM
>>>>>> *To: *PostgreSQL mailing lists <[email protected]>
>>>>>> *Subject: *How to create an ODBC datasource in CI
>>>>>>
>>>>>> Greetings,
>>>>>>
>>>>>>
>>>>>>
>>>>>> In order to test the driver using github actions we need to be able
>>>>>> to create a windows datasource. Usually this requires some kind of user
>>>>>> interaction.
>>>>>>
>>>>>>
>>>>>>
>>>>>> Has anyone done this on GH actions ?
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> Dave Cramer
>>>>>>
>>>>>


view thread (10+ messages)  latest in thread

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected], [email protected], [email protected]
  Subject: Re: How to create an ODBC datasource in CI
  In-Reply-To: <CADF4wWrUbUMqKVTQbEQ9eKftjB68igwUWG+nKj_LQs5-vkYZFQ@mail.gmail.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox