Giter Club home page Giter Club logo

acopy's Introduction

For the current status of the program, more information, downloads and documentation: https://arvehansen.net/codecave/

ACopy

A tool for copying a complete database to/from text files. It creates schema files and data files per table. The text files can be copied into either an Oracle, Sql Server (or Sql Azure) database. This means that you can copy a complete database from Oracle to Sql Server (or vise versa). It should:

  • Handle conversion from Oracle data types to SQL Server data types (and vise versa).
  • Handle column constraints (default values and null values)
  • Handle primary/foreign keys
  • Handle indexes
  • Handle views (could be limitations if copying from one RDBMS to another)
  • Handle Procedures (could be limitations if copying from one RDBMS to another)

Since the data files are plain text files (comma separated values), it can be used to get data for other tools that does not support connecting to a database. It can also be used to backup a database.

Background

I work with an ERP system called Unit4 Business World (previously called Agresso). Through the years, the ERP system has been using many different databases to store its data. In the 90's I wrote a program to transfer both data and schema between these databases. Doing this manually is a pain, since the data types and DDL (Database Definition Language) for the different RDBMS's are different. In the beginning, this program was very slow. It was improved upon using different bulk operations, but still pretty slow in certain cases.

Improving this tool never really got any priority. It was also written in C++, using pretty low-level database libraries (e.g. OCI for Oracle and blk for SQL Server), so difficult to maintain.

A few years ago, my boss and friend Anders Hauan tried out the .NET database libraries for SQL Server and Oracle. By writing a custom DataReader and using the .NET parallel library, he could move data much faster than my copy program. He wanted me to take over the code, but as I often find, it's faster to start from scratch (sorry Anders :-) )

So I wrote a copy program that used these ideas, and managed to copy a complete UBW database (Unit4 Business World is an ERP program) between Oracle, SQL Server, and SQL Azure.

Current state

The program was (and is still) done on my spare time. It's been more or less untouched for the last two years (2014-2016). It currently only handles the data types used by UBW (Unit4 Business World is an ERP program), and there is some special handling for indexes and views. It also does some special type conversions (like char will always be converted to varchar, number(30,3) to money, etc). This will be changed so conversions can be dynamic, and all the special UBW handling will be optional.

acopy's People

Contributors

arveh avatar

Stargazers

Israel Santiago avatar

Watchers

James Cloos avatar  avatar

Forkers

ankh21234 radtek

acopy's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.