In a current project, I need to run a rake task that populates a Person table with data from Active Directory.  The Person table uses acts_as_solr.
The problem is that the Net:LDAP gem and acts_as_solr seem to conflict with each other.  When I define acts_as_solr in the Person table, I get a bind error in Net:LDAP.  I have tried changing port numbers for acts_as_solr, but no go.
So, here's a work around that might be helpful to others.  What I want is the ability to temporarily turn off acts_as_solr in the Person model, run the rake task to populate the table, then turn acts_as_solr back on.
First, in the Person model here is how include acts_as_solr:
      acts_as_solr if AppConfig.solr_on
So, acts_as_solr will only be included if a global variable called solr_on is true.
Now, in the rake task, I first set solr_on to false:
      AppConfig.solr_on = false
Then, I re-load the Person class, so that acts_as_solr will not be included:
      load "#{RAILS_ROOT}/app/models/person.rb"
Finally, at the bottom of the rake task, I set solr_on back to true and re-load the Person class, so that acts_as_solr will be included.  I also reindex solr so that the added records will be included:
        AppConfig.solr_on = true
        load "#{RAILS_ROOT}/app/models/person.rb"
        Person.rebuild_solr_index
This might be beneficial in a more generic context.
Friday, December 28, 2007
Friday, December 21, 2007
Mac Ports upgrade of ruby breaks dbi/odbc
In case anyone else runs into this hair-puller-outer:
I upgraded the Mac Ports version of ruby on my Macbook and suddenly my rake tasks that use dbi/odbc were bombing saying ruby couldn't find the ODBC driver for dbi. I made sure my rb-dbi and rb-odbc were the latest ports, but no go. Finally, I uninstalled rb-odbc and reinstalled rb-odbc, same version, and things started working again. Go figure.
I upgraded the Mac Ports version of ruby on my Macbook and suddenly my rake tasks that use dbi/odbc were bombing saying ruby couldn't find the ODBC driver for dbi. I made sure my rb-dbi and rb-odbc were the latest ports, but no go. Finally, I uninstalled rb-odbc and reinstalled rb-odbc, same version, and things started working again. Go figure.
Subscribe to:
Comments (Atom)
