# Rails, test con sqlite2 in memory & schema.rb con troppi indici

**URL:** <https://www.ruby-forum.com/t/rails-test-con-sqlite2-in-memory-schema-rb-con-troppi-indici/125830>\
**Category:** IT\
**Created:** [January 12, 2008, 4:32pm UTC](https://www.ruby-forum.com/t/rails-test-con-sqlite2-in-memory-schema-rb-con-troppi-indici/125830 "2008-01-12T16:32:50Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![gabriele\_renzi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/e19b73/32.png) [@gabriele\_renzi](https://www.ruby-forum.com/u/gabriele_renzi)\
**Post date:** [January 12, 2008, 4:32pm UTC](https://www.ruby-forum.com/t/rails-test-con-sqlite2-in-memory-schema-rb-con-troppi-indici/125830/1 "2008-01-12T16:32:50Z")

</div>

Eilà gente,

scrivo perché come al solito sbatto su cose che non  
rintraccio su internet…  
In sostanza, io ho un db di sviluppo con mysql (non  
chiedete perché) e per i test uso SQLite3 in memoria.

Ora, il problema è che le mie migrazioni includono le  
descrizioni delle foreign key (usando il plugin  
foreign\_key\_migrations, ma credo sarebbe uguale se  
avessi scritto a mano), e quando faccio db:schema:dump  
mi ritrovo con cose del genere:

# foo(bar\_id) references bar(id)

add\_index :foo, :bar\_id

# quux(bar\_id) references bar(id)

add\_index :quux, :bar\_id

più ovviamente l’indice creato implicitamente su  
bar(id). Pare che a SQLite questo non piaccia e mi  
sputa fuori un  
SQLite3::SQLException: index bar\_id already exists  
che ovviamente blocca l’import dello schema e mi  
impedisce di far girare i test.

Qualcuno di voi ha mai avuto problemi analoghi? Se si,  
come ha risolto?  
Esiste un trick per convincere il driver del DBMS a  
ignorare questi errori ed andare avanti? (ne prevedo  
di simili quando cercherà di aggiungere le FK con  
alter table, che sqlite non supporta)

```
  __________________________________________________________

```

Sent from Yahoo! Mail - a smarter inbox [http://uk.mail.yahoo.com](http://uk.mail.yahoo.com)
