# \[ANN\] ChronoModel - temporal database on Rails

**URL:** <https://www.ruby-forum.com/t/ann-chronomodel-temporal-database-on-rails/226577>\
**Category:** IT\
**Created:** [December 18, 2012, 8:18pm UTC](https://www.ruby-forum.com/t/ann-chronomodel-temporal-database-on-rails/226577 "2012-12-18T20:18:09Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Marcello\_B](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/a88e4f/32.png) [@Marcello\_B](https://www.ruby-forum.com/u/Marcello_B)\
**Post date:** [December 18, 2012, 8:18pm UTC](https://www.ruby-forum.com/t/ann-chronomodel-temporal-database-on-rails/226577/1 "2012-12-18T20:18:09Z")

</div>

Ciao lista,

nei mesi passati ho implementato un’extension per ActiveRecord  
che implementa una Slowly-Changing Dimension di tipo 2, vale a  
dire un sistema di temporal database basato su PostgreSQL \>= 9.

Ogni modifica effettuata ad un record del database registrata  
automaticamente in una tabella accessoria, conservando le date  
di validit da → a; indexing spaziale usando i tipi di dati  
geometrici offerti da PG (ultra-fast); schema methods per le  
migrazioni e instance methods per prelevare la history di un  
record as-of-time, tenendo in conto le associazioni (!) :-).

Il risultato ChronoModel: [GitHub - ifad/chronomodel: Temporal PostgreSQL (9.4+) system with "flashback" framework for ActiveRecord (5.0+)](https://github.com/ifad/chronomodel)  
attualmente utilizzato dall’applicazione che sto realizzando,  
con una buona test coverage e quasi tutto ci che serve per  
gestire e presentare la history nella UI.

Il progetto sta raggiungendo la fase di maturit, ma ancora  
un one-man project - quindi sono qui per pubblicizzarlo 🙂 e  
raccogliere i vostri commenti e/o contributi.

Grazie!

---

<div class="post-metadata">

**Author:** ![Marcello\_B](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/a88e4f/32.png) [@Marcello\_B](https://www.ruby-forum.com/u/Marcello_B)\
**Post date:** [December 18, 2012, 10:02pm UTC](https://www.ruby-forum.com/t/ann-chronomodel-temporal-database-on-rails/226577/2 "2012-12-18T22:02:44Z")

</div>

2012/12/18 Marcello B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

> Il progetto sta raggiungendo la fase di maturit, ma ancora  
> un one-man project - quindi sono qui per pubblicizzarlo 🙂 e  
> raccogliere i vostri commenti e/o contributi.

Ciao Marcello, l’idea mi piace moltissimo. Sono un po’ ignorante in  
tema di storicizzazione dati, ma la soluzione mi sembra elegante  
e sarebbe un motivo in pi per usare pgsql 🙂

Keep up the good work!

Stefano

---

<div class="post-metadata">

**Author:** ![Marcello\_B](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/a88e4f/32.png) [@Marcello\_B](https://www.ruby-forum.com/u/Marcello_B)\
**Post date:** [December 18, 2012, 10:45pm UTC](https://www.ruby-forum.com/t/ann-chronomodel-temporal-database-on-rails/226577/3 "2012-12-18T22:45:03Z")

</div>

Bello! Avevo studiato un po’ di temporal database mesi fa perché poteva  
servirmi in un progetto che poi ha preso un’altra direzione. Ricapitasse  
l’occasione sarà una ragione in più per proporre psql ai clienti, a  
parte i due o tre casini di mysql in cui mi sono imbattuto per  
l’ennesima volta negli ultimi giorni (scelte ereditate).

Paolo
