I just ran "dtrace" on "ruby dbcheck.rb"  (sqlite test case I
mentioned earlier)
and I see:

  0  18561                       open:entry ruby /Library/Ruby/Site/
1.8/universal-darwin10.0/sqlite3/sqlite3_native.bundle

Which is the sqlite3 bundle that comes "with" Ruby, rather then the
bundle that
comes with sqlite3-ruby gem.  Doing "nm" on the native library bundle
in  /Library/Ruby/Site
shows all the expected exported symbols.

So there appears to be two versions of sqlite3.  Confirmed:

$ gem list -d sqlite3

    Installed at (1.3.2): /Library/Ruby/Gems/1.8
                 (1.2.4): /System/Library/Frameworks/Ruby.framework/
Versions/1.8/usr/lib/ruby/gems/1.8

Now trying to uninstall the gem version, as Omar Latief suggests
which I hesitated to do before because it said "taps" depends on it:

# gem uninstall sqlite3-ruby
You have requested to uninstall the gem:
        sqlite3-ruby-1.3.2
taps-0.3.14 depends on [sqlite3-ruby (~> 1.2)]
Continue with Uninstall? [Yn]  Y
Successfully uninstalled sqlite3-ruby-1.3.2

After finishing that, I can run "taps" and not get any errors.
However, when I run "heroku push:db", I see:

Sending data
0 tables, 0 records
Resetting sequences

In other words, no error messages, but it didn't work either,
because my app definitely has data, runs locally and uses sqlite3.


0 tables, 0 records
Resetting sequences





On Jan 15, 6:06 pm, ChrisWolf <[email protected]> wrote:
> Ok, I updated heroku and the problem is still there.  I really don't
> think it's a Heroku issue because
> I can reproduce the problem simply by invoking the "taps" executable,
> even without
> any command line arguments:
>
> $ taps
> /Library/Ruby/Gems/1.8/gems/sqlite3-ruby-1.3.2/lib/sqlite3/
> sqlite3_native.bundle:
> dlsym(0x1014150c0, Init_sqlite3_native): symbol not found
> - /Library/Ruby/Gems/1.8/gems/sqlite3-ruby-1.3.2/lib/sqlite3/
> sqlite3_native.bundle (LoadError)
>         from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
> `require'
>         from /Library/Ruby/Gems/1.8/gems/sqlite3-ruby-1.3.2/lib/sqlite3.rb:6
>         from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in
> `gem_original_require'
>         [...]
>
> That native library looks fishy because "nm" reports only one defined
> symbol and one
> undefined (external) symbol:
>
> nm /Library/Ruby/Gems/1.8/gems/sqlite3-ruby-1.3.2/lib/sqlite3/
> sqlite3_native.bundle
> 0000000000000000 t __mh_bundle_header
>                  U dyld_stub_binder
>
> On Jan 11, 9:56 am, Asif <[email protected]> wrote:
>
> > Update your heroku gem (gem update heroku), and try again. It should
> > work now.
> > There was a bug at their end, but they have fixed it now.
>
> > --Asif
>
> > On Jan 10, 7:14 am, ChrisWolf <[email protected]> wrote:
>
> > > I am having the same issue.   The exact error I get is:
>
> > > $ heroku db:push
> > > Taps 0.3 Load Error: dlsym(0x101df8ef0, Init_sqlite3_native): symbol
> > > not found - /Library/Ruby/Gems/1.8/gems/sqlite3-ruby-1.3.2/lib/sqlite3/
> > > sqlite3_native.bundle
> > > You may need to install or update the taps gem to use db commands.
>
> > > This is on MacOSX 10.6 ("Snow Leopard"), Ruby-1.8.7, and taps is
> > > definitely installed:
> > > gem list -d taps
> > > *** LOCAL GEMS ***
>
> > > taps (0.3.14)
>
> > > ...and if I run this test script:
>
> > > require 'rubygems'
> > > require 'sqlite3'
> > > tempname = "test.sqlite#{3+rand}"
> > > db = SQLite3::Database.new(tempname)
> > > puts db.execute('select sqlite_version()')
> > > db.close
> > > File.unlink(tempname)
>
> > > It reports the SQLite version correctly, so I assume the sqlite3-ruby
> > > gem is also properly installed.
>
> > > At this point, I'm totally stuck.  Or maybe pushing from Snow Leopard
> > > isn't supported?, but I doubt it.

-- 
You received this message because you are subscribed to the Google Groups 
"Heroku" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/heroku?hl=en.

Reply via email to