A computer-implemented method comprising: migrating data during uptime from a first table to a second table in a first schema in a database while the first table is in use and receives updates, inserts, and/or deletes as changes to the first table, wherein the second table is created in a namespace which is not visible to a first application server and which is different than a namespace of the first table and has a new structure to the structure of the first table, the first application server connecting to the database using the first schema, a second application server connecting to the database using a second schema, the first application server running a first version of a software program, the second application server running a second version of the software program, the second schema having a first alias pointing to the first table and a second alias pointing to the second table so that the second application server sees only the second alias which has the namespace of the first table as expected by the second application server but the content of the second table; adding entries during uptime to a change table in the first schema characterizing the changes to the first table during the data migration, the second schema including a change alias pointing to the change table; recursively updating, during uptime while the first table is in use, the second table to include the entries referred to in the change table using the second application server, reading data from the first alias corresponding to the entries referred to in the change table, and writing the data from the first alias to the second alias until a remaining number of the entries is below a pre-defined threshold; and after the remaining number of the entries is below the pre-defined threshold, initiating downtime to migrate remaining entries in the change table to the second table, delete the first table, and rename the second table to have a same name as the first table prior to deletion so that during uptime the second application server connects to the second table and runs the second version of the software program. migrating data during uptime from a first table to a second table in a first schema in a database while the first table is in use and receives updates, inserts, and/or deletes as changes to the first table, wherein the second table is created in a namespace which is not visible to a first application server and which is different than a namespace of the first table and has a new structure to the structure of the first table, the first application server connecting to the database using the first schema, a second application server connecting to the database using a second schema, the first application server running a first version of a software program, the second application server running a second version of the software program, the second schema having a first alias pointing to the first table and a second alias pointing to the second table so that the second application server sees only the second alias which has the namespace of the first table as expected by the second application server but the content of the second table; adding entries during uptime to a change table in the first schema characterizing the changes to the first table during the data migration, the second schema including a change alias pointing to the change table; recursively updating, during uptime while the first table is in use, the second table to include the entries referred to in the change table using the second application server, reading data from the first alias corresponding to the entries referred to in the change table, and writing the data from the first alias to the second alias until a remaining number of the entries is below a pre-defined threshold; and after the remaining number of the entries is below the pre-defined threshold, initiating downtime to migrate remaining entries in the change table to the second table, delete the first table, and rename the second table to have a same name as the first table prior to deletion so that during uptime the second application server connects to the second table and runs the second version of the software program.