Giter VIP home page Giter VIP logo

access-exodus's Introduction

Access Exodus

Tests Count

Tests Coverage

This program aims to transfer data from Microsoft Access databases to a different SQL database. Special config files with database and table information are read to determine what/where/how tables and columns are transferred. The program relies on ODBC drivers and aioodbc and pyodbc to connect to both source and target databases For now, ODBC drivers will have to be installed manually. See below for useful links on intalling and using ODBC drivers.

โš  Warning: This project is in very early stages and should not be used in production

Current Features

  • Transfer tables from one or more Access databases to one target database
  • Define transfer specification in one config file

Not Supported

  • GUI is work in progress
  • Table schema not fully implemented

Requirements

  • Only works on Windows
  • ODBC drivers for source and target databases

Usage

โš  Warning: Currently drops any existing tables in the target database and creates new tables

  • With the executable: accex <path-to-config-file>
    • If a config file is not specified, the program will find one in the current working directory with the .accex extension.
  • From source: python -m accex <path-to-config-file>

Documentation

Currently Supported (Tested) Databases

+------------------+------------------------+-----------+ | Sources | +------------------+------------------------+-----------+ | Database | Driver | Version | +==================+========================+===========+ | Microsoft Access | Access Database Engine | 2010-2016 | +------------------+------------------------+-----------+

+------------+--------------------+---------+ | Targets | +------------+--------------------+---------+ | Database | Driver | Version | +============+====================+=========+ | PostgreSQL | PostgreSQL Unicode | 14^ | +------------+--------------------+---------+

Planned Features

  • Choose whether to drop, insert, or join duplicate target tables per table
  • GUI for creating config
  • Recommend, download, and install ODBC drivers automatically based on selected databases

Devlopment Setup

Using poetry to manage modules is recommended.

  1. Install a supported version of python, such as with pyenv
    1. pyenv install 3.11.6
    2. pyenv local 3.11.6 to set the local python version
  2. Install poetry and configure
    1. poetry config virtualenvs.in-project true
  3. Create a virtual environment
    1. poetry shell will create one if it does not exist and activates it
    2. poetry env info (should display the correct python version, with path to local .venv)
  4. Install dependencies
    1. poetry install
      • To install with optional dependencies, use poetry install --with group_1,group_2,...
      • Groups can be found in pyproject.toml

Tests

Tests use pytest, pytest-cov and pytest-asyncio

  • poetry install --with test to install test dependencies
  • poetry run pytest

Building

WIP

access-exodus's People

Contributors

matthewchen146 avatar

Watchers

 avatar

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.