Skip to main content

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

Metadata

Release files for sqlite3-to-oracle 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sqlite3-to-oracle 1.0.0
File Size Uploaded
sqlite3_to_oracle-1.0.0.tar.gz 74.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sqlite3-to-oracle 1.0.0
File Interpreter ABI Platform
sqlite3_to_oracle-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 158.6 kB

Release files / sqlite3_to_oracle-1.0.0.tar.gz

Download URL sqlite3_to_oracle-1.0.0.tar.gz
Size 74.8 kB
Tags Source
SHA-256 checksum
How to use checksums
6aafc917a90bf536bf0c8e62831ca2181f704fa3ad90c42cf19add27a6683afe
BLAKE2b-256 checksum
How to use checksums
888bc10a80f5ba1a056c3b166352916f06473fa4f079958d0e21a7dc5ec585ce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 2, 2025.

Transparency log

Release files / sqlite3_to_oracle-1.0.0-py3-none-any.whl

Download URL sqlite3_to_oracle-1.0.0-py3-none-any.whl
Size 83.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
19d1614f536a6671dd49cf315665f46928013fa3ef0e21c73e7f393fc1c5343d
BLAKE2b-256 checksum
How to use checksums
f6356cf3580f3072e7f4b407ac5e076286d0fa4d94e29565e721106f1ff60489
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 2, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page