Skip to main content

Outil de conversion de bases de données SQLite vers Oracle

Project description

SQLite to Oracle Converter

Outil pour convertir des bases de données SQLite vers Oracle SQL.

Caractéristiques

  • Conversion automatique des types de données SQLite vers Oracle
  • Gestion des tables volumineuses et des types complexes
  • Création automatique d'utilisateur Oracle
  • Plusieurs modes d'importation :
    • Importation complète (schéma + données)
    • Schéma uniquement (--schema-only)
    • Structure relationnelle uniquement (--only-fk-keys) - conserve uniquement les clés primaires et étrangères

Installation

pip install sqlite3-to-oracle

Usage

# Conversion standard
sqlite3-to-oracle --sqlite_db ma_base.sqlite

# Conversion avec schéma seulement (sans données)
sqlite3-to-oracle --sqlite_db ma_base.sqlite --schema-only

# Conversion du squelette relationnel uniquement (uniquement les clés primaires et étrangères)
sqlite3-to-oracle --sqlite_db ma_base.sqlite --only-fk-keys

# Conversion avec nom d'utilisateur et mot de passe personnalisés
sqlite3-to-oracle --sqlite_db ma_base.sqlite --new-username mon_user --new-password mon_pass

Options

Options de source

# Utilisation en ligne de commande
sqlite3-to-oracle --sqlite_db path/to/your_database.sqlite

# Options supplémentaires
sqlite3-to-oracle --sqlite_db path/to/your_database.sqlite --new-username custom_user --new-password custom_pass --drop-tables --force-recreate

# Utilisation avec un fichier .env
sqlite3-to-oracle --env-file /path/to/.env

Fichier .env

Vous pouvez configurer toutes les options dans un fichier .env :

# Configuration Oracle Admin
ORACLE_ADMIN_USER=system
ORACLE_ADMIN_PASSWORD=password
ORACLE_ADMIN_DSN=localhost:1521/free

# Options du programme
ORACLE_SQLITE_DB=/path/to/database.sqlite
ORACLE_OUTPUT_FILE=/path/to/output.sql
ORACLE_NEW_USERNAME=new_user
ORACLE_NEW_PASSWORD=new_pass
ORACLE_DROP_TABLES=true
ORACLE_FORCE_RECREATE=true
ORACLE_SCHEMA_ONLY=false

Fonctionnalités

  • Convertit les schémas et données SQLite en Oracle SQL compatible
  • Crée automatiquement un utilisateur Oracle
  • Exécute le script SQL généré dans Oracle
  • Fournit l'URI SQLAlchemy pour se connecter à la base créée

Configuration Oracle

Plusieurs méthodes sont disponibles pour configurer l'accès à Oracle :

  1. Variables d'environnement :

    • ORACLE_ADMIN_USER, ORACLE_ADMIN_PASSWORD, ORACLE_ADMIN_DSN
  2. Fichier .env :

    • Utiliser l'option --env-file pour spécifier le chemin du fichier
  3. Fichier de configuration JSON :

    • ~/.oracle_config.json (automatique)
    • Ou spécifier avec --oracle-config-file
  4. Arguments en ligne de commande :

    • --oracle-admin-user, --oracle-admin-password, --oracle-admin-dsn

Les paramètres de ligne de commande ont la priorité sur les autres méthodes.

Vérifications post-importation

Après avoir importé votre base de données SQLite vers Oracle, l'outil valide automatiquement l'importation pour s'assurer que les tables, colonnes et données ont été correctement transférées.

# La validation est activée par défaut, donc cette commande effectue déjà une validation
sqlite3-to-oracle --sqlite_db path/to/your_database.sqlite

# Pour désactiver la validation (non recommandé)
sqlite3-to-oracle --sqlite_db path/to/your_database.sqlite --no-validate-schema

# Pour des détails supplémentaires sur les éventuels problèmes
sqlite3-to-oracle --sqlite_db path/to/your_database.sqlite --verbose

Vérifications effectuées

La validation post-importation vérifie :

  1. Tables : Toutes les tables SQLite sont présentes dans Oracle
  2. Schéma : Les colonnes et leurs types de données correspondent entre SQLite et Oracle
  3. Données : Le nombre d'enregistrements dans chaque table correspond entre les deux bases
  4. Récapitulatif : Un résumé statistique avec le total des tables, colonnes et lignes

Interpréter les résultats

  • VALIDATION RÉUSSIE : Toutes les tables, colonnes et données ont été correctement importées
  • ⚠️ VALIDATION AVEC AVERTISSEMENTS : L'importation est partiellement réussie mais présente des problèmes

Utilisez l'option --verbose pour voir les détails spécifiques des avertissements et des erreurs, comme les tables ou colonnes manquantes.

Traitement par lots

L'outil permet également de traiter plusieurs bases de données SQLite en une seule fois :

# Traiter tous les fichiers .sqlite dans un répertoire
sqlite3-to-oracle --batch --sqlite-dir /chemin/vers/repertoire --uri-output-file uris.txt

# Traiter des fichiers spécifiques avec un motif
sqlite3-to-oracle --batch --sqlite-dir /chemin/vers/repertoire --file-pattern "data_*.db" --uri-output-file uris.txt

Les URIs SQLAlchemy de toutes les bases importées avec succès seront enregistrées dans le fichier spécifié.

Utilisateurs par base de données

En mode batch, chaque base de données SQLite est importée avec son propre utilisateur Oracle dédié. Le nom d'utilisateur et le mot de passe sont dérivés automatiquement du nom du fichier SQLite:

  • Pour un fichier clients.sqlite → utilisateur Oracle clients
  • Pour un fichier sales_2023.db → utilisateur Oracle sales2023

Cela permet une isolation complète des données entre les différentes bases importées.

Note: Pour utiliser un seul utilisateur administrateur pour toutes les importations, ajoutez l'option --use-admin-user.

Options de traitement par lots

Option Description
--batch Activer le mode de traitement par lots
--sqlite-dir Répertoire contenant les fichiers SQLite à importer
--file-pattern Motif de fichiers à traiter (par défaut: *.sqlite)
--uri-output-file Fichier pour enregistrer les URIs SQLAlchemy
--continue-on-error Continuer le traitement même en cas d'erreur
--use-admin-user Utiliser un seul utilisateur (admin) pour toutes les bases

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sqlite3_to_oracle-1.0.0.tar.gz (74.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sqlite3_to_oracle-1.0.0-py3-none-any.whl (83.9 kB view details)

Uploaded Python 3

File details

Details for the file sqlite3_to_oracle-1.0.0.tar.gz.

File metadata

  • Download URL: sqlite3_to_oracle-1.0.0.tar.gz
  • Upload date:
  • Size: 74.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for sqlite3_to_oracle-1.0.0.tar.gz
Algorithm Hash digest
SHA256 6aafc917a90bf536bf0c8e62831ca2181f704fa3ad90c42cf19add27a6683afe
MD5 ad86aed28e534c4751f6c710f926e170
BLAKE2b-256 888bc10a80f5ba1a056c3b166352916f06473fa4f079958d0e21a7dc5ec585ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for sqlite3_to_oracle-1.0.0.tar.gz:

Publisher: workflow.yml on Fran-cois/sqlite3-to-oracle

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sqlite3_to_oracle-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for sqlite3_to_oracle-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 19d1614f536a6671dd49cf315665f46928013fa3ef0e21c73e7f393fc1c5343d
MD5 8016d54a59f32cdbf13a40c23306baf4
BLAKE2b-256 f6356cf3580f3072e7f4b407ac5e076286d0fa4d94e29565e721106f1ff60489

See more details on using hashes here.

Provenance

The following attestation bundles were made for sqlite3_to_oracle-1.0.0-py3-none-any.whl:

Publisher: workflow.yml on Fran-cois/sqlite3-to-oracle

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page