Gestion et stockage de fichiers dans un référentiel de code cloud avec Autonomous AI Database
Autonomous AI Database fournit des routines permettant de gérer et de stocker des fichiers dans des référentiels de code cloud (Git). Les référentiels de code cloud pris en charge sont : GitHub, AWS CodeCommit et Azure Repos.
A propos des référentiels de code cloud avec la base de données d'IA autonome
Le package DBMS_CLOUD_REPO fournit une interface unique pour accéder à un référentiel de code cloud à partir d'une base de données Autonomous AI.
Les référentiels de code cloud pris en charge offrent les fonctionnalités suivantes :
-
Système de contrôle de version Git : Git est un logiciel de suivi des modifications dans n'importe quel ensemble de fichiers, généralement utilisé pour coordonner le travail entre les programmeurs en développant de manière collaborative du code source pendant le développement de logiciels. Ses objectifs incluent la vitesse, l'intégrité des données et la prise en charge des workflows distribués et non linéaires.
-
Git Repository : Un référentiel Git est un stockage virtuel de votre projet. Il vous permet d'enregistrer des versions de votre code, auxquelles vous pouvez accéder si nécessaire.
Les API DBMS_CLOUD_REPO utilisent un descripteur de référentiel (objet REPO). Le descripteur de référentiel est un objet JSON opaque qui représente un référentiel de code cloud d'un fournisseur cloud spécifique. Un objet REPO peut être transmis à différentes API DBMS_CLOUD_REPO. Cet objet opaque garantit que les procédures et fonctions DBMS_CLOUD_REPO sont compatibles multicloud. Vous n'avez pas à modifier votre code lorsque vous migrez d'un fournisseur de référentiel de code cloud vers un autre référentiel de code cloud.
Autonomous AI Database fournit les éléments suivants pour vous aider à utiliser les référentiels de code cloud :
-
Opérations d'initialisation du référentiel permettant d'initialiser un référentiel.
Pour plus d'informations, reportez-vous à Initialisation d'un référentiel Cloud Code.
-
Opérations de gestion de référentiel permettant de créer, répertorier, mettre à jour ou supprimer un référentiel.
Pour plus d'informations, reportez-vous à Création et gestion d'un référentiel de code cloud.
-
Opérations de gestion de branchement de référentiel permettant de créer, de répertorier, de fusionner ou de supprimer des branches dans un référentiel.
Pour plus d'informations, reportez-vous à Création et gestion de branches dans un référentiel de code cloud.
-
Exportez le code LDD de métadonnées de tous les objets d'un schéma vers un référentiel.
Pour plus d'informations, reportez-vous à Exporter des objets de schéma vers la branche de référentiel de code cloud.
-
Opérations de gestion de fichiers de référentiel pour télécharger, télécharger, mettre à jour et supprimer des fichiers.
Pour plus d'informations, reportez-vous à Utilisation d'opérations de fichier avec un référentiel de code cloud.
-
Opérations d'installation SQL qui permettent d'exporter des instructions LDD de métadonnées d'objet de base de données vers un référentiel et d'installer des instructions SQL dans la base de données à partir d'un référentiel de code cloud.
Pour plus d'informations, reportez-vous à Utilisation des opérations d'installation SQL avec un référentiel de code cloud.
Initialisation d'un référentiel de code cloud
Les routines d'initialisation DBMS_CLOUD_REPO initialisent un référentiel de code cloud. Après avoir obtenu un descripteur de référentiel de code cloud, vous l'utilisez pour accéder au référentiel de code cloud.
Pour initialiser un référentiel de code cloud :
-
Créez des informations d'identification pour accéder au référentiel de code cloud.
Pour plus d'informations sur la création des informations d'identification, reportez-vous à Procédure CREATE_CREDENTIAL.
-
Selon le référentiel, GitHub, Azure Repos ou AWS CodeCommit, appelez
DBMS_CLOUD_REPO.INIT_REPOavec les paramètres du référentiel particulier pour obtenir un descripteur de référentiel.Les exemples suivants fournissent des exemples pour chaque référentiel de code cloud pris en charge.
-
Initialisation de GitHub :
DEFINE repo_name='test_repo'; DEFINE cred_name='GITHUB_CRED'; VAR repo clob BEGIN :repo := DBMS_CLOUD_REPO.INIT_REPO( params => JSON_OBJECT('provider' value 'github', 'repo_name' value '&repo_name', 'credential_name' value '&cred_name', 'owner' value '<myuser>') ); END; / -
Initialisation du référentiel Azure :
DEFINE repo_name='test_repo'; DEFINE cred_name='AZURE_REPO_CRED'; VAR repo clob BEGIN :repo := DBMS_CLOUD_REPO.INIT_REPO( params => JSON_OBJECT('provider' value 'azure', 'repo_name' value '&repo_name', 'credential_name' value '&cred_name', 'organization' value '<myorg>', 'project' value '<myproject>') ); END; / -
Initialisation AWS CodeCommit :
DEFINE repo_name='test_repo'; DEFINE cred_name='AWS_REPO_CRED'; VAR repo clob BEGIN :repo := DBMS_CLOUD_REPO.INIT_REPO( params => JSON_OBJECT('provider' value 'aws', 'repo_name' value '&repo_name', 'credential_name' value '&cred_name', 'region' value 'us-east-1') ); END; /
-
Pour plus de détails sur les fonctions d'initialisation, reportez-vous à Opérations d'initialisation DBMS_CLOUD_REPO.
Création et gestion d'un référentiel de code cloud
Les routines de gestion DBMS_CLOUD_REPO vous permettent de gérer un référentiel de code cloud en créant, répertoriant, mettant à jour ou supprimant un référentiel.
Tout d'abord, obtenez un descripteur de référentiel de code cloud pour fournir l'accès à un référentiel. Pour plus de détails, reportez-vous à Initialisation d'un référentiel de code cloud.
-
Pour créer un référentiel, procédez comme suit :
VAR repo clob BEGIN DBMS_CLOUD_REPO.CREATE_REPOSITORY( repo => :repo, description => 'test repo' ); END; / -
Pour mettre à jour un référentiel, procédez comme suit :
VAR repo clob DEFINE repo_name='test_repo'; BEGIN DBMS_CLOUD_REPO.UPDATE_REPOSITORY( repo => :repo, new_name => '&repo_name' || '_new' ); END; / -
Pour répertorier les référentiels, procédez comme suit :
col id format a30 col name format a10 col description format a15 select id, name, bytes, private, description from DBMS_CLOUD_REPO.LIST_REPOSITORIES(:repo); -
Pour supprimer un référentiel, procédez comme suit :
VAR repo clob BEGIN DBMS_CLOUD_REPO.DELETE_REPOSITORY( repo => :repo ); END; /
Pour plus d'informations, reportez-vous à DBMS_CLOUD_REPO Repository Management Operations.
Créer et gérer des branches dans un référentiel de code cloud
Les routines de gestion DBMS_CLOUD_REPO vous permettent de gérer les branches du référentiel de code cloud en créant, répertoriant, fusionnant ou supprimant des branches dans un référentiel.
Pour effectuer des opérations de gestion de branchement Cloud Code Repository, vous devez d'abord :
-
Créer des informations d'identification.
Pour plus d'informations, reportez-vous à Procédure CREATE_CREDENTIAL.
-
Obtenez un descripteur.
Pour plus de détails, reportez-vous à Initialisation d'un référentiel de code cloud.
-
Permet de créer un référentiel.
Pour plus de détails, reportez-vous à Création et gestion d'un référentiel de code cloud.
-
Connectez-vous en tant qu'utilisateur ADMIN ou disposez du privilège
EXECUTEsurDBMS_CLOUD_REPO.
-
Pour créer une branche dans un référentiel de code cloud :
BEGIN DBMS_CLOUD_REPO.CREATE_BRANCH ( repo => l_repo, branch_name => 'test_branch', parent_branch => 'main' ); END; / -
Pour supprimer un branchement dans un référentiel de code cloud :
BEGIN DBMS_CLOUD_REPO.DELETE_BRANCH ( repo => l_repo, branch_name => 'test_branch' ); END; / -
Pour fusionner un branchement dans un autre branchement d'un référentiel de code cloud :
BEGIN DBMS_CLOUD_REPO.MERGE_BRANCH ( repo => l_repo, branch_name => 'test_branch', target_branch_name => 'main' ); END; / -
Pour répertorier les branches dans un référentiel de code cloud, procédez comme suit :
SELECT * FROM DBMS_CLOUD_REPO.LIST_BRANCHES (repo => l_repo); -
Vous pouvez répertorier les validations dans une branche du référentiel de code cloud en fonction des éléments suivants :
-
Référentiel
-
branche,
-
Chemin d'accès du branchement
-
SHA/ID validation
Remarque : SHA est une chaîne de 40 caractères de somme de contrôle composée de caractères hexadécimaux (0-9 et a-f).
Pour répertorier les validations basées sur le référentiel :
SELECT * FROM DBMS_CLOUD_REPO.LIST_COMMITS ( repo => :repo);Pour répertorier les validations en fonction du référentiel, du commit_id et du chemin d'accès du branchement :
SELECT * FROM DBMS_CLOUD_REPO.LIST_COMMITS ( repo => l_repo, commit_id => '66dd2b23b74cd0afabd11af66c6aa9c550540ba6', file_path => 'sub_dir/test11.sql'Pour répertorier les validations basées sur le référentiel et le chemin d'accès du branchement, procédez comme suit :
SELECT * FROM DBMS_CLOUD_REPO.LIST_COMMITS ( repo => :repo, branch_name => 'branch1');Pour répertorier les validations en fonction du référentiel, du nom de branchement et du chemin d'accès du branchement :
SELECT * FROM DBMS_CLOUD_REPO.LIST_COMMITS ( repo => :repo, branch_name => 'branch1', file_path => 'sub_dir/test11.sql');Pour répertorier les validations en fonction du référentiel et de l'ID de validation du branchement :
SELECT * FROM DBMS_CLOUD_REPO.LIST_COMMITS ( repo => :repo, commit_id =>'66dd2b23b74cd0afabd11af66c6aa9c550540ba6'); -
Pour plus d'informations, reportez-vous à la section DBMS_CLOUD_REPO Repository Branch Management Operations.
Exporter des objets de schéma vers la branche du référentiel de code cloud
La routine de gestion DBMS_CLOUD_REPO vous permet d'exporter les métadonnées des objets d'un schéma vers la branche Cloud Code Repository. Vous pouvez filtrer votre liste en fonction des noms d'objet ou des types d'objet.
Pour exporter des métadonnées de schéma, vous devez d'abord :
-
Créer des informations d'identification.
Pour plus d'informations, reportez-vous à Procédure CREATE_CREDENTIAL.
-
Obtenez un descripteur.
Pour plus de détails, reportez-vous à Initialisation d'un référentiel de code cloud.
-
Permet de créer un référentiel.
Pour plus de détails, reportez-vous à Création et gestion d'un référentiel de code cloud.
-
Connectez-vous en tant qu'utilisateur ADMIN ou disposez du privilège
EXECUTEsurDBMS_CLOUD_REPO.
Utilisez la procédure EXPORT_SCHEMA pour exporter les métadonnées des objets de votre schéma vers un branchement du référentiel de code cloud :
BEGIN
DBMS_CLOUD_REPO.EXPORT_SCHEMA(
repo => l_repo,
schema_name => 'USER1',
file_path => 'myschema_ddl.sql'
filter_list =>
to_clob('[
{ "match_type":"equal",
"type":"table"
},
{ "match_type":"not_equal",
"type":"view"
},
{ "match_type":"in",
"type":"table",
"name": " ''EMPLOYEE_SALARY'',''EMPLOYEE_ADDRESS'' "
},
{ "match_type":"equal",
"type":"sequence",
"name": "EMPLOYEE_RECORD_SEQ"
},
{ "match_type":"like",
"type":"table",
"name": "%OFFICE%"
}
]'
);
);
END;
/
Cet exemple exporte les métadonnées du schéma USER1 dans le référentiel l_repo. L'export inclut les métadonnées des tables EMPLOYEE_SALARY et EMPLOYEE_ADDRESS, ainsi que tout nom de table contenant OFFICE. Elle exporte également la séquence EMPLOYEE_RECORD_SEQ et exclut les vues du schéma.
Pour plus d'informations, reportez-vous à Procédure EXPORT_SCHEMA.
Utiliser des opérations sur des fichiers avec un référentiel de code cloud
Les opérations de fichier DBMS_CLOUD_REPO vous permettent de créer, d'obtenir, de répertorier, de mettre à jour ou de supprimer des fichiers dans un référentiel de code cloud.
Obtenez un descripteur de référentiel de code cloud avant d'utiliser les opérations de fichier. Pour plus de détails, reportez-vous à Initialisation d'un référentiel de code cloud.
Vous devez également créer un référentiel avant d'utiliser des fichiers. Pour plus d'informations, reportez-vous à Création et gestion d'un référentiel de code cloud.
- Pour obtenir un fichier :
SELECT DBMS_CLOUD_REPO.GET_FILE(repo => :repo, file_path => 'test1.sql') -
Pour créer un fichier, procédez comme suit :
VAR repo clob BEGIN DBMS_CLOUD_REPO.PUT_FILE( repo => :repo, file_path => 'test1.sql', contents => UTL_RAW.cast_to_raw('create table t1 (x varchar2(30))' || CHR(10) || '/') ); END; / -
Pour mettre à jour un fichier :
VAR repo clob BEGIN DBMS_CLOUD_REPO.PUT_FILE( repo => :repo, file_path => 'test1.sql', contents => UTL_RAW.cast_to_raw('create table t2 (x varchar2(30))' || CHR(10) || '/') ); END; / -
Pour répertorier les fichiers :
SELECT id, name, bytes, url FROM DBMS_CLOUD_REPO.LIST_FILES(repo => :repo); -
Pour supprimer un fichier, procédez comme suit :
VAR repo clob BEGIN DBMS_CLOUD_REPO.DELETE_FILE( repo => :repo, file_path => 'test1.sql' ); END; /
Pour plus d'informations, reportez-vous à Opérations de fichier DBMS_CLOUD_REPO.
Utiliser des opérations d'installation SQL avec un référentiel de code cloud
Les opérations d'installation SQL DBMS_CLOUD_REPO vous permettent de stocker et de télécharger des scripts SQL à partir d'un référentiel de code cloud.
Obtenez un descripteur de référentiel de code cloud avant d'utiliser les opérations d'installation SQL. Pour plus de détails, reportez-vous à Initialisation d'un référentiel de code cloud.
Vous devez également créer un référentiel avant d'utiliser les opérations d'installation SQL. Pour plus d'informations, reportez-vous à Création et gestion d'un référentiel de code cloud.
Les scripts sont conçus comme des scripts d'installation de schéma et non comme des scripts SQL génériques :
-
Les scripts ne peuvent pas contenir de commandes propres au client SQL*Plus.
-
Les scripts ne peuvent pas contenir de variables attachées ou de scripts paramétrés.
-
Les instructions SQL doivent se terminer par une barre oblique sur une nouvelle ligne (/).
-
Les scripts peuvent contenir des instructions PLSQL LDD et LMD, mais les instructions
SELECTdirectes ne sont pas prises en charge. L'utilisation de SELECT dans un bloc PL/SQL est prise en charge.
Toute instruction SQL qui peut être exécutée à l'aide de EXECUTE IMMEDIATE fonctionnera si elle ne contient pas de variables attachées ou de définitions.
-
Pour télécharger des métadonnées LDD vers un référentiel de code cloud, procédez comme suit :
VAR repo clob BEGIN DBMS_CLOUD_REPO.EXPORT_OBJECT( repo => :repo, object_type => 'PACKAGE', object_name => 'MYPACK', file_path => 'mypack.sql' ); END; / -
Pour installer des instructions SQL à partir d'un fichier :
VAR repo clob BEGIN DBMS_CLOUD_REPO.INSTALL_FILE( repo => :repo, file_path => 'test3.sql', stop_on_error => FALSE ); END; / -
Pour installer des instructions SQL à partir d'un tampon :
VAR repo clob BEGIN DBMS_CLOUD_REPO.INSTALL_SQL( repo => :repo, content => 'create table t1 (x varchar2(30))' || CHR(10) || '/', stop_on_error => FALSE ); END; /
Pour plus d'informations, reportez-vous à opérations d'installation SQL DBMS_CLOUD_REPO.