sqlite3.3.7 gives "SQL logic error or missing database"

Railsters:

I ported a working project to a new hard drive, and had such a pleasant afternoon with this issue:

   http://www.railsweenie.com/forums/5/topics/1496

The bug report says the problem is pilot error.

However, I get the bug before querying anything. I get it especially annoyingly from test_dummy with nothing in it. The bug refers to the calls below setup():

SQLite3::SQLException: SQL logic error or missing database
   /var/lib/gems/1.8/gems/sqlite3-ruby-1.2.1/lib/sqlite3/errors.rb:94:in `check'

/var/lib/gems/1.8/gems/sqlite3-ruby-1.2.1/lib/sqlite3/resultset.rb:76:in `check'

/var/lib/gems/1.8/gems/sqlite3-ruby-1.2.1/lib/sqlite3/resultset.rb:68:in `commence'

/var/lib/gems/1.8/gems/sqlite3-ruby-1.2.1/lib/sqlite3/resultset.rb:61:in `initialize'

/var/lib/gems/1.8/gems/sqlite3-ruby-1.2.1/lib/sqlite3/statement.rb:163:in `new'

I think I have this bug:

   http://www.railsweenie.com/forums/5/topics/1496

Here's the potential cause:

"I got the same message. The problem was there were files in test/unit for models that had been deleted. You'll get the same message if you run a single test, e.g. if you have a file test/unit/foo_test.rb but no table for foos typing the shell command

% ruby test/unit/foo_test.rb

will give the same error."

So when I move all my non-Model unit tests out of the unit test folder, and put them into the functional folder, and everything works.

I spoke too soon. The unit tests work, but all the functional view helper tests don't work!

So, like others who have tried Sqlite3 on Fiesty Fawn, I am back to MySQL for the tests. Good thing it doesn't seem too slow...

Phlip wrote:

> Railsters:

> I ported a working project to a new hard drive, and had such a pleasant
> afternoon with this issue:

> http://www.railsweenie.com/forums/5/topics/1496

> The bug report says the problem is pilot error.

> However, I get the bug before querying anything. I get it especially
> annoyingly from test_dummy with nothing in it. The bug refers to the calls
> below setup():

> SQLite3::SQLException: SQL logic error or missing database
> /var/lib/gems/1.8/gems/sqlite3-ruby-1.2.1/lib/sqlite3/errors.rb:94:in
> `check'

> /var/lib/gems/1.8/gems/sqlite3-ruby-1.2.1/lib/sqlite3/resultset.rb:76:in
> `check'

> /var/lib/gems/1.8/gems/sqlite3-ruby-1.2.1/lib/sqlite3/resultset.rb:68:in
> `commence'

> /var/lib/gems/1.8/gems/sqlite3-ruby-1.2.1/lib/sqlite3/resultset.rb:61:in
> `initialize'

> /var/lib/gems/1.8/gems/sqlite3-ruby-1.2.1/lib/sqlite3/statement.rb:163:in
> `new'

> I think I have this bug:

> http://www.railsweenie.com/forums/5/topics/1496

> Here's the potential cause:

> "I got the same message. The problem was there were files in test/unit for
> models that had been deleted. You'll get the same message if you run a
> single test, e.g. if you have a file test/unit/foo_test.rb but no table
> for foos typing the shell command

> % ruby test/unit/foo_test.rb

> will give the same error."

> So when I move all my non-Model unit tests out of the unit test folder,
> and put them into the functional folder, and everything works.

I spoke too soon. The unit tests work, but all the functional view helper
tests don't work!

So, like others who have tried Sqlite3 on Fiesty Fawn, I am back to MySQL
for the tests. Good thing it doesn't seem too slow...

> So that doesn't appear to be pilot error, huh, if all these tests work
> fine with MySQL for the test database, and if all these tests worked fine
> with slightly older version ticks.

> Some version dumps:

> rails (1.2.3)
> sqlite3-ruby (1.1.0.1) (This is _why's sensibility repack.)
>ZenTest(3.6.0)

My biggest recent version change was ZenTest (from 3.4.2). Adding this
line to the *ViewTest classes seems to help:

  self.use_transactional_fixtures = false

And SQLite3 can't do transactions. So the problem appears to be
ZenTest's propagation of the transactional fixtures setting...