Développeur Web RoR

Aller au contenu | Aller au menu | Aller à la recherche

Tag - psql

Fil des billets

vendredi 15 juillet 2016

Lancer une requête sql contenu dans un fichier avec psql (postgresql)

Pour lancer une requête contenue dans un fichier avec psql, il suffit de faire : 

\i lefichier.sql

Pratique pour éditer la requête avec son éditeur préféré et l'importer sans copier/coller.

mardi 21 janvier 2014

Utiliser hstore avec le gem Apartment

Il m'est arrivé d'avoir besoin de hstore (stockage key/value dans postgres) avec Apartment.
La mise en place n'est pas très compliqué mais il ne faut rien oublier.
Le readme de Apartment est bien fait : https://github.com/influitive/apartment
Personnellement j'ai créé l'extension manuellement :

sudo -s -u postgres
psql
\c mabasededonnees
CREATE SCHEMA hstore; CREATE EXTENSION HSTORE SCHEMA hstore;

Ensuite il faut rajouter dans la config d'apartment :

Apartment.configure do |config|
  [...]
  config.persistent_schemas = ['hstore']
  [...]
end

Egalement dans le database.yml :

development:
  adapter: postgresql
  host: localhost
  database: mabasededonnees
  username: sylvain
  password: sylvain
  schema_search_path: "public,hstore"

La difficulté, ici c'est qui si vous faites un rake apartment:migrate ou rake db:migrate vous allez avoir une erreur :
PG::UndefinedObject: ERROR:  type "hstore" does not exist
Parce que l'extension n'a pas pour propriétaire "sylvain". Il faut donc retourner sur psql pour corriger le tir :

sudo -s -u postgres
psql
\c mabasededonnees
ALTER SCHEMA hstore OWNER TO "sylvain";

Le  "rake apartment:migrate" devrait mieux se passer maintenant.

mardi 9 novembre 2010

Scripter les programmes postgresql

Vous vous êtes déjà retrouvé à vouloir scripter les programmes postgresql sous linux, mais voilà postgresql veut des mots de passe, pas de souci, postgresql lit la variable d'environnement PGPASSWORD.

PGPASSWORD=votre_password psql ..... -W ......

Pour une suite de commandes :

export PGPASSWORD="your_password" 
psql....
psql....
psql....

C'est pas conseillé mais bon des fois ça peut bien simplifier les choses !

http://www.postgresql.org/docs/8.4/static/libpq-envars.html

Bon script...