PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 Re : Général » Problème avec PGFoundry » 06/09/2010 11:43:02

cool, ca marche smile

Un très grand merci a toi !!

#3 Re : Général » Problème avec PGFoundry » 06/09/2010 10:59:45

Je t'ai remis admin et le répertoire est crée

[gildas@pgfoundry /cvsroot/npgtools]$ ls -al
total 14
drwxrwxr-x    4 nobody  npgtools   512 Sep  6 08:57 .
drwxrwxr-x  370 admin   admin     7168 Jul 29 16:07 ..
drwxr-xr-x    4 gildas  npgtools   512 Sep  3 21:59 CVSROOT
drwxr-xr-x    2 gildas  npgtools   512 Sep  6 08:57 npgtools

le répertoire npgtools est bien présent dans l'arbre de dépot de pgfoundry : http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgtools/

#4 Re : Général » Problème avec PGFoundry » 06/09/2010 08:32:42

Est il normal que j'arrive a ajouter des fichiers dans CVSROOT mas pas dans un autre répertoire ?

Je m'explique, quand je crée le répertoire /cvsroot/npgtools/CVSROOT j'arrive a ajouter des répertoires et des fichiers dans CVSROOT, par contre les fichiers et répertoires ajoutés et commités ne sont pas visibles dans l'arbre de dépot de pgfoundry (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/npgtools/).
Si j'ajoute un répertoire npgtools (/cvsroot/npgtools/npgtools) alors celui ci est visible dans l'arbre de dépot mais il m'est impossible d'ajouter des fichiers dans ce répertoire...

#6 Re : Général » Problème avec PGFoundry » 03/09/2010 14:03:36

gleu a écrit :

Par contre, petit soucis, vu que j'ai fait le mkdir, le répertoire a gleu comme propriétaire. Si tu veux que tu sois le propriétaire (ce serait bien plus logique), dis-le moi. Je supprimerais le répertoire pour que tu puisses le créer toi-même. Mais en attendant, regarde déjà si le checkout fonctionne pour toi.

Je voudrais bien oui, car la j'ai des permission denied... smile

Merci beaucoup en tout cas... smile

#7 Re : Général » Problème avec PGFoundry » 03/09/2010 12:17:40

A priori, il faudra que je crée moi même le répertoire, et le checkout ne fonctionne pas pour le moment

gildas@PC /cygdrive/c/npgtools
$ export CVS_RSH=ssh

gildas@PC /cygdrive/c/npgtools
$ cvs -d :ext:gildas@cvs.pgfoundry.org:/cvsroot/npgtools checkout npgtools
The authenticity of host 'cvs.pgfoundry.org (200.46.204.130)' can't be establish
ed.
DSA key fingerprint is cb:08:ee:77:f4:01:88:14:41:2a:bf:a9:49:3b:4b:65.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'cvs.pgfoundry.org,200.46.204.130' (DSA) to the list
of known hosts.
Password:
cvs server: cannot find module `npgtools' - ignored
cvs [checkout aborted]: cannot expand modules

gildas@PC /cygdrive/c/npgtools
$ cvs -d :ext:gildas@cvs.pgfoundry.org:/cvsroot/npgtools checkout
cvs [checkout aborted]: must specify at least one module or directory

gildas@PC /cygdrive/c/npgtools
$ cvs -d :ext:gildas@cvs.pgfoundry.org:/cvsroot/npgtools checkout CVSROOT
Password:
cvs checkout: Updating CVSROOT
cvs checkout: failed to create lock directory for `/cvsroot/npgtools/CVSROOT' (/
cvsroot/npgtools/CVSROOT/#cvs.lock): Permission denied
cvs checkout: failed to obtain dir lock in repository `/cvsroot/npgtools/CVSROOT
'
cvs [checkout aborted]: read lock failed - giving up

Comment fais tu pour te connecter en ssh sur le répertoire du projet ?

Merci beaucoup... smile

#8 Re : Général » Problème avec PGFoundry » 03/09/2010 11:14:07

Comment le contacter sans qu'il se sente agressé ? roll roll

via le forum d'aide de PgFoundry ?
via email ?

Merci

#9 Re : Général » Problème avec PGFoundry » 03/09/2010 10:41:36

Tu es ajouté en tant qu'administrateur du projet.

Merci

#10 Général » Problème avec PGFoundry » 03/09/2010 08:35:16

Gildas
Réponses : 18

Bonjour,

Désolé de poster mon problème ici, mais n'ayant pas de retour de PGFoundry (http://pgfoundry.org/forum/forum.php?th … orum_id=44), je me retourne vers le seul forum actif et français de surcroit que je connaisse...

J'ai crée un projet sur PGFoundry (npgtools), et j'aimerais déposer des fichiers dans le CVS, mais problème... lorsque j'essaie de déposer un fichier ou faire toute autre action j'ai l'erreur suivante :

cvs -d :ext:gildas@cvs.pgfoundry.org:/cvsroot/npgtools checkout npgtools
Cannot access /cvsroot/npgtools/CVSROOT
No such file or directory

Je suis sous windows XP, et cette erreur apparait que je passe par TurtoiseCVS IHM, Cygwin ou bien directement en ligne de commande windows.

Je sais que certains ici ont des comptes Pgfoundry, je peux les mettre temporairement admins sur le projet afin de voir.

D'avance merci

#11 Re : Général » Sauvegarde de base de données sans pg_dump (Npgsql par ex) » 08/07/2009 10:05:47

Merci pour toutes ces informations wink

Edit :
En 8.3.7 (Win32), liste des dépendances :
- comerr32.dll
- gssapi32.dll
- k5sprt32.dll
- krb5_32.dll
- libeay32.dll
- libiconv-2.dll
- libintl-8.dll
- libpq.dll
- ssleay32.dll
- zlib1.dll

#12 Re : Général » Sauvegarde de base de données sans pg_dump (Npgsql par ex) » 07/07/2009 12:10:29

Haseo a écrit :

Ca dépend également du type de dump que tu veux faire : sauvegarde intégrale de ta base ou simple extraction des données de tables ?

Sauvegarde intégrale effectivement.

Deux questions me viennent a l'esprit :
roll Pg_dump est il portable ? (c.a.d, fonctionne il sans aucune installation de PostGreSQL sur le poste sur lequel il est lancé ?)
roll Si oui, quelles sont les dll nécéssaires a l'exécution de pg_dump ? (Hormis les dll VC++)

Merci wink

#13 Général » Sauvegarde de base de données sans pg_dump (Npgsql par ex) » 06/07/2009 17:37:59

Gildas
Réponses : 5

Bonjour a tous,

Est il possible d'effectuer une sauvegarde de base de données (pg8.3) sans passer par le traditionnel pg_dump ?

Ceci pour une application .Net/C# utilisant actuellement Npgsql, l'idée étant de me passer de créer un process pg_dump.exe pour faire la sauvegarde.

Merci d'avance.

#14 Re : PL/pgSQL » [PL/PGSQL] Fonction qui crée une fonction, gestion des Dollars... » 12/02/2009 15:58:25

gleu a écrit :

Pour ce que ça vaut, j'ai corrigé la fonction en incluant le code dans une variable de type text. Ça me donne ceci :

....

et ça fonctionne pour moi.

Merci de t'être penché sur mon problème, mais le renommage du premier record a suffit a résoudre mon problème.

#15 Re : PL/pgSQL » [PL/PGSQL] Fonction qui crée une fonction, gestion des Dollars... » 12/02/2009 12:39:00

C'est bon j'ai trouvé l'erreur...

En fait le message renvoyé n'est pas trop clair, je me suis attardé sur le fameux '$1' de ma fonction alors que le problème vient de la variable record de la fonction PatchDatabase qui est aussi utilisée dans la fonction my_function.

Donc on a deux fois la même variable, pas bien... J'ai donc renommé la variable de la fonction PatchDatabase et cela fonctionne...

Désolé ! smile

#16 PL/pgSQL » [PL/PGSQL] Fonction qui crée une fonction, gestion des Dollars... » 12/02/2009 11:46:59

Gildas
Réponses : 3

Bonjour,

J'ai de nombreuses bases de versions différentes, que je dois mettre a jour, la mise a jour se fait via l'exécution d'une fonction PlPgsql seulement si la version de la base est antérieure à la version du patch, ceci assure donc que les bases mises à jour aient tous les patchs passés, et ceci quelque soit la version.

Ex : J'ai 3 patchs a passer sur mes bases...
     - Base a en version 1.0 -> passage des patchs 1, 2 et 3
     - Base b en version 1.0 patch 2 -> passage du patch 3 uniquement
     - Base c en version 1.0 patch 3 -> passage d'aucun patch
     - Base d en version 1.0 patch 1 -> passage des patchs 2 et 3

J'espere que c'est clair désormais... smile

Bon maintenant, je vais exposer le réel problème rencontré. Le patch est réalisé via une fonction PlPgsql, qui elle meme peut mettre a jour ou créer des fonctions PlPgsql... Les fonctions Plpgsql contentant des paramètres ne sont pas gérables du fait que le Dollar ($) utilisé pour les parametres dans les fonctions ne passe pas lors de l'exécution du patch...

Coment utiliser le Dollar dans une fonction PlPgsql qui se trouve dans une fonction PlPgsqL ?

Comment reproduire la chose ?

Tout d'abord créer la table permettant de gérer le versionning...

CREATE TABLE versions
(
  id_version character varying(16) NOT NULL,
  commands character varying,
  "number" integer,
  CONSTRAINT versions_pkey PRIMARY KEY (id_version)
)
WITH (OIDS=FALSE);

INSERT INTO versions(id_version, commands, "number") VALUES ('1.0.3211', '', 3211);

On voit que cette bases est versionnée 1.0.3211

Ensuite essayer de passer le patch 1.0.3221... bonne chance... smile

---------------------------------------------------------
---                DROP PREVIOUS PATCH                ---
---------------------------------------------------------
DROP FUNCTION IF EXISTS PatchDatabase();

---------------------------------------------------------
---                   PREPARE PATCH                   ---
---------------------------------------------------------
CREATE FUNCTION PatchDatabase() RETURNS void AS
$$
DECLARE
  record RECORD;
  recordVersion RECORD;
  
  BUILD_VERSION integer :=      3321;
  FULL_VERSION  varchar := '1.0.3321';
  
  BEGIN	
    SELECT * INTO record FROM versions WHERE "number">=BUILD_VERSION;
    IF record IS NULL THEN
      BEGIN
	    CREATE OR REPLACE FUNCTION my_function(channelid integer)
          RETURNS SETOF record AS
        $BODY$
        DECLARE
            chain_key INTEGER;
            chain_id INTEGER;
            record RECORD;
        BEGIN
            FOR chain_id IN SELECT id_acq_chain FROM channels, acq_chains WHERE channels.key_acq_chain = acq_chains.key_acq_chain and id_channel=$1 ORDER BY channels.date_modif, acq_chains.date_modif DESC LIMIT 1
            LOOP
                SELECT * INTO record FROM acq_chains WHERE id_acq_chain=chain_id ORDER BY date_modif DESC LIMIT 1;
                RETURN NEXT record;
           END LOOP;
            RETURN;
        END
        $BODY$
          LANGUAGE 'plpgsql' VOLATILE SECURITY DEFINER COST 100 ROWS 1;

	    RETURN;
	    EXCEPTION WHEN unique_violation THEN
	  END;
    END IF;
  END;
$$
LANGUAGE 'plpgsql';

---------------------------------------------------------
---                   LAUNCH PATCH                    ---
---------------------------------------------------------
SELECT * FROM PatchDatabase();

Le résultat de l'exécution de ce patch est

ERROR: syntax error at or near "$1"
État SQL :42601
Contexte : SQL statement in PL/PgSQL function "patchdatabase" near line 28

Donc pas top... Comment utiliser le dollar ?

D'avance Merci...

Pied de page des forums

Propulsé par FluxBB