Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 Re : Installation » Partagé pgdata pour des Pgsql en local » 19/08/2015 13:00:09
Donc si je comprend bien, pour qu'une base de donnée soit partagée, il faut que Postgres soit aussi "partagé" (dans mon cas, il faut qu'il soit installé sur le serveur) ?
#2 Installation » Partagé pgdata pour des Pgsql en local » 19/08/2015 11:05:14
- Logiquefloue
- Réponses : 3
Bonjour,
On arrive pas à installer PostgrSQL sur un serveur distant d'un client!! Je souhaite savoir si il serai possible d'installer en local PostgrSQL sur plusieurs postes et mettre les fichiers de données "pgdata" sur un serveur partagé ?
l'idée est de faire pointer, ensuite, les "pgdata" de chaque poste vers le "pgdata" partagé via des liens symbolique...que pensez-vous, cela peut fonctionner ?
d'avance, merci.
#3 Re : Installation » Postgres sans installateur » 13/07/2015 17:40:02
Bonjour,
J'ai finalement rajouté, dans mon application, un script qui lance le .bat.
Pour ceux que ça intéresse voici le code python :
import os
os.chdir("C:\Users\PORTABLE\Desktop\batfile")
os.sytsem("hello.bat)
Merci pour ton aide rjuju, j'ai appris pleins de trucs avec toi
#4 Re : Installation » Postgres sans installateur » 09/07/2015 21:36:06
Quand vous dite " Vous pouvez toutefois ajouter ce script dans la liste des scripts à lancer au démarrage si c'est plus simple pour vous." c'est la liste des scripts qui démarrent avec Windows au lancement de la machine ?
Vous l'avez compris, en fait, je cherche une solution pour lancer le serveur automatiquement, soit au lancement de mon application soit au démarrage de Windows...mais le fait que je ne soit pas administrateur sur la machine, ça limite mes possibilités!
#5 Re : Installation » Postgres sans installateur » 09/07/2015 20:29:17
L'installation classique permet notamment d'ajouter un nouveau service windows. Si vous n'avez pas les privilèges suffisant pour ajouter un service, il faut effectivement démarrer manuellement l'instance. Vous pouvez toutefois ajouter ce script dans la liste des scripts à lancer au démarrage si c'est plus simple pour vous.
Ajouter ce script coté Postgresql, cela est possible ? effectivement ça serai la solution pour moi car je n'ai pas l'autorisation d'ajouter des services...
#6 Re : Installation » Postgres sans installateur » 09/07/2015 11:14:29
OK, j'ai créer un serveur depuis pgAdmin et ça fonctionne. Merci c'était bien le REM que je laissait !!
Pour communiquer avec mes base de données depuis mon application, dois-je à chaque fois lancer le script pour démarrer le serveur ? avec l'installation classique j'avais pas besoin de cela
#7 Re : Installation » Postgres sans installateur » 09/07/2015 10:42:03
Ah! non je n'avais pas retirer le "REM" de la ligne : REM "%~dp0\bin\initdb" -U postgres -A trust
Je ne suis pas sûr de comprendre la procédure ! voici ce que je fais :
1/ décompresser le zip pgsql
2/ créer le script (.bat) dans le dossier pgsql
3/ retirer le "REM"
4/ lancer le script
5/lancer pgAdmin qui se trouve dans pgsql\bin
Non, je n'ai aucune erreur, tout semble ok
#8 Installation » Postgres sans installateur » 09/07/2015 09:56:37
- Logiquefloue
- Réponses : 9
Bonjour,
Je souhaite avoir Postgresql sur un poste sous win dont je ne suis pas l'administrateur. Donc je dois "l'installer" sans passer par l'installation "classique" (.exe). la version binaire de postgresql semble permettre cela.
J'ai suivi ceci http://dba.stackexchange.com/questions/ … ostgresql/ mais sans succès ! quand je démarre pgAdmin je ne trouve pas mon serveur, et si j'ajoute un serveur depuis pgAdmin, je reçois le message : serveur doesn't listen.
Je ne sais ce que je ne fais pas bien !!
Quelqu'un a déjà fait ce type d’installation ?
Merci
#9 Re : Général » Fusionner(joindre)les résultats d'une requête » 12/03/2015 16:15:32
Très bien, je vais voir cela avec l'hébergeur.
Merci de votre aide
#10 Re : Général » Fusionner(joindre)les résultats d'une requête » 12/03/2015 12:55:02
C'est la version 9.0.13 qui est installée.
Quand j'execute le code :
-- the generic crosstab function:
CREATE OR REPLACE FUNCTION crosstab(text)
RETURNS setof record
AS 'MODULE_PATHNAME','crosstab'
LANGUAGE C STABLE STRICT;
J'ai l'erreur "permission denied for language c" !
#11 Re : Général » Fusionner(joindre)les résultats d'une requête » 12/03/2015 11:43:05
Depuis PgAdmin, pour la création de l'extension, j'exécute le code suivant sur ma bd hébergée :
CREATE EXTENSION tablefunc
SCHEMA public
VERSION "1.0";
Voici le message d'erreur
ERROR: syntax error at or near "EXTENSION"
LINE 5: CREATE EXTENSION tablefunc
La vue "pg_available_extensions" n'est pas dans la liste des vues présentes sur ma bd hébergée.
#12 Re : Général » Fusionner(joindre)les résultats d'une requête » 12/03/2015 10:38:47
Bonjour,
Merci Julien pour ta réponse. Effectivement, la fonction "crosstab" répond parfaitement à ce qu'est recherché. Voici le code complet de la requête pour les lecteurs intéressés.(test fait sur une bd locale)
SELECT * FROM crosstab('SELECT objet, dateM, valeur FROM mesure ORDER BY dateM DESC LIMIT 2 OFFSET 0')AS ct (objet text, dateM double precision, valeur double precision);
L'utilisation de cette fonction est possible qu'après l'installation de l'extension "tablefunc". Ma base de données est hébergée sur un serveur mutualisé. Je pense que l'extension n'est pas installée sur le serveur et donc je n'arrive pas à exécuter la fonction "crosstab". Comment ça se passe dans le cas d'un serveur mutualisé, c'est à l'hébergeur d'installer les extensions de Postgresql ?
Merci.
#13 Général » Fusionner(joindre)les résultats d'une requête » 07/03/2015 18:30:06
- Logiquefloue
- Réponses : 8
Bonjour,
J'ai la table suivante :
mesure :
objet dateM valeur
obj1 2013-01-01 4
obj2 2014-02-15 2
obj1 2010-09-14 5
obj2 2011-12-25 10
obj1 2008-01-25 25
Je cherche à trouver les valeurs des deux plus récentes dates pour chaque objet et afficher le résultat sur une seule ligne. Voici le résultat attendu :
objet dateM1 valeur1 dateM2 valeur2
obj1 2013-01-01 4 2010-09-14 5
obj2 2014-02-15 2 2011-12-25 10
Avec le code ci-dessous, j'arrive à trouver les bonnes valeurs mais sur 2 lignes. J'ai aussi essayer les jointures sans succès!
SELECT objet, dateM, valeur FROM mesure ORDER BY dateM DESC LIMIT 2 OFFSET 0
Merci de votre aide.
#14 Re : Général » demande d'aide sur une requete[Résolu] » 02/03/2015 12:47:48
Elle fonctionne parfaitement
Merci Julien
#15 Général » demande d'aide sur une requete[Résolu] » 02/03/2015 09:46:16
- Logiquefloue
- Réponses : 2
Bonjour,
Je vous sollicite dans le cadre d’une requête que je n’arrive pas à coder.
J’ai deux tables
Table travaux :
CT dateT
Obj1 2011-01-01
Obj1 2012-01-01
Obj2 2014-01-01
Obj4 2015-01-01
Table mesure :
CM mesure dateM
Obj1 1 2010-05-01
Obj1 4 2013-01-01
Obj1 8 2015-01-01
Obj2 0.5 2015-01-01
La requête que j’essaye de faire consiste à trouver la mesure la plus faible de «CM » depuis la date d. d = la date la plus récent de CT où CT=CM
Dans notre exemple le résultat attendu est
CM mesure
Obj1 4
Obj2 0.5
J’ai essayé cette requête mais elle me donne une erreur car l'expression de HAVING n'est pas correct
SELECT CM, min(mesure) FROM mesure INNER JOIN travaux ON ((CM = CT)) GROUP BY CM HAVING (dateM>max(dateT))
Merci d'avance
#16 Re : Général » Requêtes qui ne renvoie rien » 11/02/2015 15:52:13
c'est bon j'ai trouvé mon problème. il fallait faire parent=c.paren.name
merci
#17 Général » Requêtes qui ne renvoie rien » 11/02/2015 11:42:04
- Logiquefloue
- Réponses : 1
Bonjour,
Dans mon code python, j’ai une requête (la 2ème) qui ne renvoie aucune valeur et je ne sais pas pourquoi !!
J’ai toujours recent[0] =None.
Merci de votre aide
voici le code :
for travaux ,recentT in db.prepare("SELECT site,max(date_travaux) FROM travaux GROUP BY site"):
......
je trouve l'année (annee)
je trouve le site (c)
#s'il s'agit d'un site dans le groupe "Travaux"
if c.name in bpy.data.groups["Travaux"].objects:
#trouve le père du c
pere=c.parent
#je cherche la date la plus récente du père
recentPere=db.prepare("SELECT MAX(date_travaux) FROM travaux WHERE id_travaux='%s'"%pere)
#je comprae la date du pere avec celle du C
for recent in recentPere:
if(recent[0]!=None):
anneePere=str(recent[0].year)
if(anneePere>=annee):
......
#18 Re : Général » Lenteur requêtes Postgres » 14/01/2015 13:18:01
Très bien c’est très clair. Cela veut dire que ma base peut être installée sur un serveur distant sans connaitre de véritable ralentissement à condition de programmer la logique en SQL ! Ouf, je suis rassuré !
Merci infiniment,
#19 Re : Général » Lenteur requêtes Postgres » 14/01/2015 12:52:23
Merci de votre réponse.
Pour mieux comprendre :
Je viens de faire un test de lancer la requête sql vous avez indiqué avec pgadmin sur le serveur distant, le temps d’exécution est 25ms ! Cela n’écarte pas la latence réseau ?
Quel est la différence entre programmer la logique en python (ou autre) et le faire en sql ?
#20 Général » Lenteur requêtes Postgres » 14/01/2015 12:05:39
- Logiquefloue
- Réponses : 5
Bonjour,
Je suis nouveau sur le forum et je suis débutant dans le « domaine » des bases de données.
J’ai un problème de lenteur avec mes requêtes quand j’utilise un serveur distant (serveur mutualisé ou mon pc en serveur sur un réseau).
Je souhaite connaitre l’avis des personnes plus expérimentées que moi pour être sûr que ma table et mes requêtes sont bien « faites » et optimisées…
Ma table « travaux » est constituée de 7 colonnes : id_site, date_travaux, commentaire…
Je souhaite connaitre la date_travaux la plus récente pour chaque site (sachant que un seul site peut avoir plusieurs date_travaux »
Voici ma requête que je lance depuis mon application « locale » écrite en python :
# parcourir les sites dans table « travaux »
for site in db.prepare("SELECT DISTINCT id_site FROM travaux"):
# chercher la date la plus récente
recentT=db.prepare("SELECT MAX(date_travaux) FROM site WHERE id_site='%s' " %site[0])
Le temps d’exécution de cette requête sur une table de 450 lignes :
En Local : 1s
Serveur distant : 13s
pour info, la connexion à la base depuis l'application est très rapide, donc ce n'est pas cela la cause du ralentissement.
Merci de votre aide.
Pages : 1