•  
  • Archives for mai 2011 (3)

Migration Mysql -> Postgresql (incrémental -> serial)

Categories: Postgresql
Comments: No Comments
Published on: 11 mai 2011

Bonjour,

L’ors de la phase de migration nous avons perdu l’ auto incrément de nos colonnes, celles ci sont devenues de simples colonnes de type Integer (en principe).
Si vous avez un peu lu la doc de Postgresql vous avez remarqué le « type » Serial, et vous avez essayé un alter table de votre colonne vers serial, résulat :

ERROR: type "serial" does not exist

La raison pour faire simple c’est que serial n’est pas un vrai type, je vais juste vous copier la définition officielle :
Les types de données serial et bigserial ne sont pas de vrais types, mais plutôt un raccourci de notation pour créer des colonnes d’identifiants uniques (similaires à la propriété AUTO_INCREMENT utilisée par d’autres SGBD).
La requête suivante :

CREATE TABLE nom_de_table (nom_de_colonne SERIAL);

est identique à :

CREATE SEQUENCE nom_de_table_nom_de_colonne_seq;
CREATE TABLE nom_de_table (nom_de_colonne integer NOT NULL DEFAULT nextval('nom_de_table_nom_de_colonne_seq') NOT NULL);
ALTER SEQUENCE nom_de_table_nom_de_colonne_seq OWNED BY nom_de_table.nom_de_colonne;

Et c’est tout simplement cette dernière requête qui va nous aider à faire nos modifications en masse :)
Tout comme nos précédentes modifications de casse nous allons utiliser concat et les tables systèmes pour parvenir à notre but.

Voici les requêtes que j’ai utilisés :

SELECT 'CREATE SEQUENCE ' || table_schema || '.' || table_name || '_' || column_name || '_seq' || ' OWNED BY ' || table_schema || '.' || table_name || '.' || column_name || ';' AS ddlSQL from information_schema.columns where column_name = 'id';


SELECT 'select setval(' || ''' || table_schema || '.' || table_name || '_id_seq',( select max(id) from ' || table_schema ||'.'|| table_name || '));' from information_schema.columns where column_name = 'id';

SELECT 'ALTER TABLE ' || table_schema || '.' || table_name || ' ALTER COLUMN id SET DEFAULT nextval(' || ''' || table_schema || '.' || table_name || '_id_seq');' from information_schema.columns where column_name = 'id' ;

Dans mon cas je modifie toutes les colonnes « id » de toutes mes tables.

Ovh propose Postgresql dans ses packs mutualisés !

Categories: Hébergeur, Postgresql
Comments: No Comments
Published on: 3 mai 2011

Bonjour,

Petite news qui pourrait s’apparenter à une pub ! mais non :p
Je trouve que c’est suffisamment important pour être mentionné.

Proposer du postgresql en mutualisé c’est loin d’être courant, en fait c’est même il me semble le premier hébergeur que je vois faire ça en France.
Mais c’est logique au fond de passer sur postgresql, il n’y a aucun risque, il ne peut y avoir de rachat contrairement à Mysql, c’est open et ça le restera.
Après on pourrait se demander si c’est vraiment utile de passer sous Postgresql, pour ovh oui car c’est vraiment gratuit, pour le long terme c’est très bien.
Pour les utilisateurs maintenant, je vois ça plutôt comme une chance, ils peuvent utiliser le serveur de base de données qu’ils souhaitent, ils ont dorénavant le choix,
et franchement utiliser un vrai serveur de base de données ça n’a pas de prix :D

Pour ce qui est du coté technique, on notera qu’ils proposent du 8.4 dommage, j’aurais bien aimé voir la 9.0, mais ce n’est pas bien grave.
L’administration sera fait par l’équivalent de phpmyqdmin soit phpPgAdmin, le dernier en date (5.0.2).

Le petit lien explicatif d’ Ovh ici

Sortie du livre de Greg Smith : Postgresql Performance en français !

Categories: Postgresql
Comments: No Comments
Published on: 2 mai 2011

Bonjour,

Une petite news sur la sortie prochaine du livre de Greg Smith, le très bon Postgresql 9.0 High Performance.
J’ai ce livre et je peux vous assurer qu’il est très très bien ! très technique et très poussé mais le tout en anglais ce qui rend la lecture assez difficile pour les anglophobes ;)

Greg Smith fait d’ailleurs un post sur le site de 2ndquadrant.com

Pour acheter le livre en français : Livre sur amazon

Je conseil vivement aux gens de prendre ce livre si ils veulent vraiment aller plus loin avec Postgresql.

page 1 of 1

Welcome , today is Lundi, 11 décembre 2017