1. A computer-implemented method performed by a computing system to generate target tables that are new versions of source tables of a database of an application, the method comprising: providing scripts for the source tables of the database, a script associated with a source table for generating a shadow table of the source table, the shadow table including shadow rows for source rows of the source table, each shadow row including a record identifier field and a version field of the source row and a new version field, the record identifier field uniquely identifying a corresponding source row of the source table, the version field identifying an update to a source row that is already reflected in the corresponding shadow row, the new version field representing an update to the source row for the source table; while the database is opened in a multi-user access mode, for source tables, executing a script associated with the source table to generate a shadow table for the source table; and after the shadow table for the source table has been generated, updating by the application of the source table, the updating being selected from the group consisting of modifying a field of a source row of the source table, adding a source row to the source table, and deleting a source row from the source table; while the database is opened in a single-user access mode, for source tables, executing a script associated with the source table to update the shadow table to reflect updates made to the source table, the reflected updates including updates selected from the group consisting of modifying a field of a source row of the source table and adding a source row to the source table, the updates being identified based on source rows and shadow rows that have the same record identifier fields but different version fields and source rows that have no corresponding shadow rows with the same record identifier field; and after the shadow table of the source table has been updated to reflect updates to the source table, adding by the application to a target table a new source row for each source row of the source table, the new source row including the new version field of a corresponding shadow row with the same record identifier field; wherein a script for a source table updates a shadow table by performing a join between the source table and the shadow table to identify source rows for which the shadow table contains no corresponding shadow rows with the same record identifier fields; and wherein the adding to the target table a new source row for each source row of the source table is performed by joining the source rows of the source table to the shadow rows of the shadow table based on the record identifier fields.