Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

..
Failed to load latest commit information.
bin
config
doc
dumps
lib
log
plugins
test
README
revert_backups.bash
swop_content.bash

README

THE PROGRAM
-----------

./run-import
./run-import-debug
./run-import-test-regression


The current state of the implementation is that it is heavily
connected to the Reaktor project. However it should be easy to adopt
and generalize the code to handle other database migration scenarios.



THE DATABASES
-------------

- The prototype's database is a PostgreSQL database.
  
    sudo createuser <unix user name>
    createdb reaktor
    psql < reaktor-fulldump-2008-03-03.sql
  
  The datamodel is documented in reaktor-datamodell.pdf

- The reaktor database is defined in reaktor.sql

    mysqladmin -uroot create reaktor_imp
    mysql -uroot -e 'grant all on reaktor_imp.* to <unix user name>@localhost'
    mysql reaktor_imp < reaktor.sql

  Remember to update reaktor.sql when ever the schema changes.



THE SCHEMA MAPPING
------------------

The data is imported row by row from one database A to another
database B.

Each table in A has a defined mapping handled by the PrototypeTableMap
class.

For each row and column in A we examine a mapping that defines how
these data relates to the schema in B. Based on this mapping INSERT
statements are generated and executed.

A column in A might map in several different ways:

 - Directly to a column in B. This is handled by the ReaktorColumn
   class.

 - It is a basis for a new row in B. This is handled by the ReaktorRow
   class (Basically an array of ReaktorColumns).

 - It might not have any value for B. Handled by the IGNORE class

 - It is a basis for several rows in B. This is not handled yet.



FILTERS
-------

A column value A might encoded in a different way in B. This is
handled by filters.


TOOLS
-----

run-import-test-regression
 
    Checks the output of run-import against a previous run that is
    assumed to be correct looking for regressions.

    It sets up a fresh database before it runs the import.

run-import-debug
  
    Runs the import with all logging enabled.    
    
    It sets up a fresh database before it runs the import.


import_to_dev

    Copies the imported data to the development database so that the
    results can be examined in the web interface.


Something went wrong with that request. Please try again.