Développeur Web RoR

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

Tag - hstore

Fil des billets

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 31 juillet 2012

Hstore : le NoSql à la mode postgresql

hstore permet de stocker un tableau associatif dans une colonne. Voici une vidéo / screencast de présentation et d'utilisation : http://www.youtube.com/watch?feature=player_embedded&v=trycX7CL2A0

Le Gem utilisé est apparemment activerecord-postgres-hstore (vu les sources : https://github.com/heroku/hstore_example/blob/master/Gemfile). Post d'origine : http://schneems.com/post/19298469372/you-got-nosql-in-my-postgres-using-hstore-in-rails