Gérer et stocker des fichiers dans un référentiel de code en nuage avec Autonomous AI Database
Autonomous AI Database fournit des sous-programmes pour gérer et stocker des fichiers dans des référentiels Git (Cloud Code). Les référentiels Cloud Code pris en charge sont : GitHub, AWS CodeCommit et Azure.
À propos des référentiels de code en nuage avec Autonomous AI Database
L'ensemble DBMS_CLOUD_REPO fournit une interface unique pour accéder à un référentiel de code en nuage à partir d'une base de données d'IA autonome.
Les référentiels de code en nuage pris en charge offrent les fonctions suivantes :
-
Système de contrôle de version Git : Git est un logiciel permettant de suivre les modifications dans n'importe quel jeu de fichiers, généralement utilisé pour coordonner le travail entre les programmeurs développant en collaboration du code source lors du développement de logiciels. Ses objectifs comprennent la vitesse, l'intégrité des données et la prise en charge de flux de travail distribués et non linéaires.
-
Référentiel Git : 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 en nuage d'un fournisseur de services en nuage spécifique. Un objet REPO peut être transmis à différentes API DBMS_CLOUD_REPO. Cet objet opaque garantit que les procédures et les fonctions DBMS_CLOUD_REPO sont compatibles avec plusieurs nuages; vous n'avez pas à modifier votre code lorsque vous migrez d'un fournisseur de référentiel de code en nuage vers un autre référentiel de code en nuage.
Autonomous AI Database fournit les fonctions suivantes pour vous aider à utiliser les référentiels de code en nuage :
-
Opérations d'initialisation du référentiel permettant d'initialiser un référentiel.
Pour plus d'informations, voir Initialiser un référentiel de code en nuage.
-
Opérations de gestion de référentiel qui vous permettent de créer, de répertorier, de mettre à jour ou de supprimer un référentiel.
Pour plus d'informations, voir Créer et gérer un référentiel de code en nuage.
-
Opérations de gestion des branches du référentiel qui vous permettent de créer, de répertorier, de fusionner ou de supprimer des branches dans un référentiel.
Pour plus d'informations, voir Créer et gérer des branches dans un référentiel de code en nuage.
-
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, voir Exporter des objets de schéma dans la branche du référentiel de code en nuage.
-
Opérations de gestion de fichiers de référentiel pour charger, télécharger, mettre à jour et supprimer des fichiers.
Pour plus d'informations, voir Utiliser des opérations de fichier avec un référentiel de code en nuage.
-
Opérations d'installation SQL qui vous permettent d'exporter les instructions LDD des métadonnées d'objet de base de données vers un référentiel et d'installer des instructions SQL dans la base à partir d'un référentiel Cloud Code.
Pour plus d'informations, voir Utiliser les opérations d'installation SQL avec un référentiel de code en nuage.
Initialiser un référentiel de code en nuage
Les sous-programmes d'initialisation DBMS_CLOUD_REPO initialisent un référentiel de code en nuage. Une fois que vous avez obtenu un descripteur Cloud Code Repository, vous l'utilisez pour accéder au référentiel Cloud Code.
Pour initialiser un référentiel Cloud Code :
-
Créez des données d'identification pour accéder au référentiel de code en nuage.
Voir Procédure CREATE_CREDENTIAL pour plus d'informations sur la création de données d'identification.
-
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 Cloud Code pris en charge.
-
Initialisation 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 des référentiels 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 d'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; /
-
Voir Opérations d'initialisation DBMS_CLOUD_REPO pour plus de détails sur les fonctions d'initialisation.
Créer et gérer un référentiel de code en nuage
Les sous-programmes de gestion DBMS_CLOUD_REPO vous permettent de gérer un référentiel de code en nuage en créant, répertoriant, mettant à jour ou supprimant un référentiel.
Tout d'abord, obtenez un descripteur Cloud Code Repository pour fournir l'accès à un référentiel. Voir Initialize a Cloud Code Repository pour plus de détails.
-
Pour créer un référentiel :
VAR repo clob BEGIN DBMS_CLOUD_REPO.CREATE_REPOSITORY( repo => :repo, description => 'test repo' ); END; / -
Pour mettre à jour un référentiel :
VAR repo clob DEFINE repo_name='test_repo'; BEGIN DBMS_CLOUD_REPO.UPDATE_REPOSITORY( repo => :repo, new_name => '&repo_name' || '_new' ); END; / -
Pour lister les référentiels :
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 :
VAR repo clob BEGIN DBMS_CLOUD_REPO.DELETE_REPOSITORY( repo => :repo ); END; /
Pour plus d'informations, voir Opérations de gestion du référentiel DBMS_CLOUD_REPO.
Créer et gérer des branches dans un référentiel de code en nuage
Les sous-programmes de gestion DBMS_CLOUD_REPO vous permettent de gérer les branches du référentiel Cloud Code en créant, listant, fusionnant ou supprimant des branches dans un référentiel.
Pour effectuer les opérations de gestion des branches du référentiel de code en nuage, vous devez d'abord :
-
Créer des données d'identification.
Voir Procédure CREATE_CREDENTIAL pour plus de détails.
-
Obtenez une poignée.
Voir Initialiser un référentiel de code en nuage pour plus de détails.
-
Créer un référentiel.
Voir Créer et gérer un référentiel de code en nuage pour plus de détails.
-
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 Cloud Code :
BEGIN DBMS_CLOUD_REPO.CREATE_BRANCH ( repo => l_repo, branch_name => 'test_branch', parent_branch => 'main' ); END; / -
Pour supprimer une branche dans un référentiel de code en nuage :
BEGIN DBMS_CLOUD_REPO.DELETE_BRANCH ( repo => l_repo, branch_name => 'test_branch' ); END; / -
Pour fusionner une branche dans une autre branche d'un référentiel Cloud Code :
BEGIN DBMS_CLOUD_REPO.MERGE_BRANCH ( repo => l_repo, branch_name => 'test_branch', target_branch_name => 'main' ); END; / -
Pour lister les branches d'un référentiel Cloud Code :
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 en nuage en fonction des éléments suivants :
-
Référentiel
-
Branche
-
Chemin d'accès au fichier de la branche
-
SHA/commit_id;
Note : 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 lister les validations basées sur le référentiel :
SELECT * FROM DBMS_CLOUD_REPO.LIST_COMMITS ( repo => :repo);Pour lister les validations en fonction du référentiel, du commit_id et du chemin d'accès au fichier de la branche :
SELECT * FROM DBMS_CLOUD_REPO.LIST_COMMITS ( repo => l_repo, commit_id => '66dd2b23b74cd0afabd11af66c6aa9c550540ba6', file_path => 'sub_dir/test11.sql'Pour lister les validations en fonction du référentiel et du chemin d'accès au fichier de la branche :
SELECT * FROM DBMS_CLOUD_REPO.LIST_COMMITS ( repo => :repo, branch_name => 'branch1');Pour lister les validations en fonction du référentiel, du nom_branche et du chemin d'accès au fichier de la branche :
SELECT * FROM DBMS_CLOUD_REPO.LIST_COMMITS ( repo => :repo, branch_name => 'branch1', file_path => 'sub_dir/test11.sql');Pour lister les validations en fonction du référentiel et du commit_id de la branche :
SELECT * FROM DBMS_CLOUD_REPO.LIST_COMMITS ( repo => :repo, commit_id =>'66dd2b23b74cd0afabd11af66c6aa9c550540ba6'); -
Pour plus d'informations, voir Opérations de gestion de succursale de référentiel DBMS_CLOUD_REPO.
Exporter les objets de schéma vers la branche du référentiel de code en nuage
Le sous-programme de gestion DBMS_CLOUD_REPO vous permet d'exporter les métadonnées des objets d'un schéma vers la branche Référentiel de code en nuage. 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 données d'identification.
Voir Procédure CREATE_CREDENTIAL pour plus de détails.
-
Obtenez une poignée.
Voir Initialiser un référentiel de code en nuage pour plus de détails.
-
Créer un référentiel.
Voir Créer et gérer un référentiel de code en nuage pour plus de détails.
-
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 une branche du référentiel de code en nuage :
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'exportation comprend les métadonnées des tables EMPLOYEE_SALARY et EMPLOYEE_ADDRESS, ainsi que tout nom de table contenant OFFICE. Il exporte également la séquence EMPLOYEE_RECORD_SEQ et exclut les vues du schéma.
Pour plus d'informations, voir Procédure EXPORT_SCHEMA.
Utiliser des opérations de fichier avec un référentiel de code en nuage
Les opérations de fichier DBMS_CLOUD_REPO vous permettent de créer, d'obtenir, de lister, de mettre à jour ou de supprimer des fichiers dans un référentiel de code en nuage.
Obtenez un descripteur Cloud Code Repository avant d'utiliser les opérations de fichier. Voir Initialize a Cloud Code Repository pour plus de détails.
Vous devez également créer un référentiel avant de travailler avec des fichiers. Voir Créer et gérer un référentiel de code en nuage pour plus de détails.
- Pour obtenir un fichier :
SELECT DBMS_CLOUD_REPO.GET_FILE(repo => :repo, file_path => 'test1.sql') -
Pour créer 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 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 lister les fichiers :
SELECT id, name, bytes, url FROM DBMS_CLOUD_REPO.LIST_FILES(repo => :repo); -
Pour supprimer un fichier :
VAR repo clob BEGIN DBMS_CLOUD_REPO.DELETE_FILE( repo => :repo, file_path => 'test1.sql' ); END; /
Pour plus d'informations, voir Opérations de fichier DBMS_CLOUD_REPO.
Utiliser les opérations d'installation SQL avec un référentiel de code en nuage
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 en nuage.
Obtenez un descripteur Cloud Code Repository avant d'utiliser les opérations d'installation SQL. Voir Initialize a Cloud Code Repository pour plus de détails.
Vous devez également créer un référentiel avant d'utiliser les opérations d'installation SQL. Voir Créer et gérer un référentiel de code en nuage pour plus de détails.
Les scripts sont conçus en tant que scripts d'installation de schéma et non en tant que 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 de liaison 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 énoncés LDD et PLSQL LMD, mais les énoncés
SELECTdirects ne sont pas pris en charge. L'utilisation de SELECT dans un bloc PL/SQL est prise en charge.
Tout énoncé SQL pouvant être exécuté à l'aide de EXECUTE IMMEDIATE fonctionnera s'il ne contient pas de variables de liaison ou de définitions.
-
Pour charger des métadonnées LDD dans un référentiel de code en nuage :
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'une mémoire 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, voir Opérations d'installation SQL DBMS_CLOUD_REPO.