J'ai mis en place un schéma de partitionnement basé sur un trigger sur l'une de nos bases de données pg 8.3 selon le document pg docs here:. Fondamentalement, j'ai une table parent, avec plusieurs tables enfants. Un déclencheur d'insertion sur le parent redirige les insertions sur le parent dans la table enfant appropriée - cela fonctionne bien. Cependant, l'adaptateur pg ActiveRecord semble s'appuyer sur l'extension "id" postgres INSERT ... RETURNING pour obtenir l'id de la ligne retournée après l'insertion initiale. Mais le déclencheur semble rompre la clause RETURNING - aucun ID n'est retourné, bien que la ligne soit créée correctement. Bien que je suppose que ce comportement a du sens - après tout, rien n'est inséré dans la table principale, j'ai vraiment besoin de trouver une sorte de contourner le problème, car d'autres enregistrements enfant seront insérés qui nécessitent l'identifiant de ligne de la ligne juste-insérée.Tables ActiveRecord, Postgres et partitionnées
Je suppose que je pourrais ajouter une sorte d'identifiant unique à ranger avant de l'insérer et ensuite le relire en utilisant cette clé après l'insertion, mais cela semble assez kludgy. Est-ce que quelqu'un a une meilleure solution de rechange?