Deployment from development to test using a different external database extension

Good morning,

We're developing an application that connects with an external database through an extension.
For now we have 2 environments (development and test) and 2 identical databases for the corresponding environment.
We are linking the application with the database through the use of an extension and, as we have 2 environments, we configured 2 extensions.

Our problem arises when we deploy the application from development to testing environment and try to update the application's dependencies. 
We want to drop the development database extension and start using the test database extension, so that the 2 environments are completely independent.
When dropping the development database extension, Service Studio crashes and we can't configure the new dependency.

We want to know:
- if there's a better way of handling the connection with an external database (e.g. through the use of only one extension, or any other way);
- if there's another way of deploying the application from one environment to another which could prevent these issues;
- if there's a way of avoiding Service Studio bugs and crashes while updating dependencies.

Best regards,
David

err, just one extension and configure it via service center?


so, in the operation-tab of the extension you have a "Logical Database" information

there you point it towards the correct database.

this you will change according to which database you have to point to.


those database-connection are set in  the adminstration tab and then databaseconnections.


see for more info: https://www.outsystems.com/help/servicestudio/9.1/#t=Integrating_with_other_systems%2FConnect_to_an_External_Database.htm

I tried using just one extension and then changing the Logical Database to point to the correct one.

But it seems that the connection is always defined to the schema I choosed when importing the entities in Integration Studio.

Is this a bug? Or am I doing something wrong?
Solution

how do you name the entities?

Chances are you have the "table or view name" as something like "somename"."myentity".

and you simply have to remove "somename".


furthermore, are you sure that logging in via the new connection you do get the new schema?


if this is not helping, I suggest to provide some example and "dummy" screenshots of the several connections etc...


Solution
That's it, thanks a lot.

For anyone else still facing this issue, check out the "Remove database name from the Extension in Dev environment" section of the new step by step guide on how to deploy an integration with an external SQL Server or Azure Server database.


Cheers

Sorry for resurrecting this topic, but context is very important.

I faced the exact same problem today, but  I found a very strange thing in Integration Studio importing or defining a Logical Database.

I was using a component from forge and the queries against platform log tables were failing due to table not found.

I created a new database connection with known logical name and edited and republish the extension to use that logical database name and it still failed.

I then reimported the tables and see that integration studio were fixing the database name in physical table name.

Then if I desire to map an extension that use different databases per environment it will never work because the database name may be different between environments.

It makes no sense to have the database name fixed on extension entity definition and use an Service Center database connection where I can choose any database even with different credentials.

I think the platform was using the connection do Main database and not one to the connection defined in Service Center and mapped in extension operation page.

If the user of main database does not have access to database of new database connection them the query will not run...

I think it is not by design and may be changed over time.

Can you tell me if it had behave different in the past?

Regards,

Márcio.