781
Views
16
Comments
Solved
Data migration to Outsystems cloud from a on-premise database
Question

Hello Everyone,

We have a customer who has OutSystems cloud setup - the database is MS SQL Server.

Now - they already have their database from their legacy application in the on-premises database.

This is a huge database (SQL Server) with about 350 tables. 

The below are the expectations:

  1. Copy the database schema as well as the data inside the tables to OutSystems cloud database from the legacy on-premises SQL Server.

I have thought some ways to achieve this:

1. We can create a database script - which will include both the DDL as well as the SQL statements for copying the data.

OR

2. We can create the same entities in the OutSystems cloud instance. Publish the entities. We will have to be careful so that these entities are exactly as same as that in database schema of the legacy application. Then we can create an SQL data import script to start the data import on the OutSystems cloud instance.


Problem with Approach 1:

If we go by this approach - the tables will be created outside of OutSystems. Hence they will not automatically appear as "Entities" in the Service Studio. Also, BPT events do not work such entities.


Problem with Approach 2:

This approach will allow me to use the entities in OutSystems as real, "native" entities. But - I will be required to create the 300 or so tables in OutSystems. I will have to create these from Service Studio. This seems like a lot of manual work. I will also have to ensure that all the referential relationships, the delete, ignore rules etc are followed while I am creating these entities.

After this - I can go on about copying the actual data using the scripts. But - I will have to make modifications - as the names given by OutSystems to the entities are autogenerated.

So - I see a problem with both the approaches. Please suggest a good approach for this very important scenario.


(To summarize - the problem is of migrating a on-premises database to OutSystems cloud whilst preserving all data integrity constraints and having the entities behave as "native" OutSystems entities.)

Champion
Rank: #104
Solution

Ahh I understand now, sorry!

Perhaps you can try Refactor?

https://www.outsystems.com/forge/component-discussions/496/Refactor

It lists functionality for creating Outsystems entities by Foreign entity

Support for converting a foreign entity (imported trough an extension) into a normal eSpace entity

Champion
Rank: #104

You can consume an external database by creating an extension or by setting it up on service center.

https://success.outsystems.com/Documentation/10/Extensibility_and_Integration/Integrate_with_an_External_Database

Ofcourse the Outsystems cloud environment needs to be able to access the target database/network, this might require some extra setup.

Champion
Rank: #104
Solution

Ahh I understand now, sorry!

Perhaps you can try Refactor?

https://www.outsystems.com/forge/component-discussions/496/Refactor

It lists functionality for creating Outsystems entities by Foreign entity

Support for converting a foreign entity (imported trough an extension) into a normal eSpace entity

Hello Chetan

Check the following Forge component 


https://www.outsystems.com/forge/component/2812/infosistema-dmm/


Best Regards

mvp_badge
MVP
Rank: #559

Hello Chetan,


I think what you want is exactly what Alberto suggested or the Coolprofs one.

We're using the coolprofs one in production to move data from there to other environments or to replicate tenants (for testing or performance).


Initially what we did, was to create an application internally that exposes all tables and consumes them in the other end through web service and worked out really nice, problem was to maintain this during the amount of development so we dropped it, but could be a solution for 1 time only as you can manage the statics and all of that manually : )


Best regards

Hi Joey Moree , I'm also facing a similar situation of data migration from a legacy system database to newly built OutSystems application database. However, in my case, not the entire data models and table structure of the legacy system database are similar to the data models and table structure of the newly built OutSystems application database. Just wanted to know if your suggested solution would work in a case like this as well? or Should I be taking some other approach to migrate the data? Really appreciate your opinion on this. 

Rank: #82051

Hi Sankhadeep Rakshit

Have you tried Infosistema's DMM? https://www.outsystems.com/forge/component/2812/infosistema-dmm/

Let me know how it goes. :)