[Facebooker-talk] Overriding id with facebook_id???
Lee Mallabone
lee at crossbonesystems.com
Tue Nov 11 14:50:56 EST 2008
I use this migration (which makes use of the environment patch I
posted previously) to ensure you don't get auto-incrementing IDs. They
wouldn't make much sense when facebook are providing the ID!
create_table :users, :id => false do |t|
t.column :id, :int64_pk, :null => false # the facebook uid
t.column :created_at, :datetime
t.column :last_seen, :datetime
end
Lee.
2008/11/11 Anthony C. Eufemio <aeon2012 at gmail.com>:
> You'll also need to handle the fact that ids in Rails are automatically
> incremented so when a user uninstalls the app you won't be able to remove
> their account (perhaps just mark it as 'disabled' in your application or
> some similar approach) so when they decide to re-install the app all you
> have to do is set it to 'enabled'
>
>
>
> -AE
>
> On Tue, Nov 11, 2008 at 10:19 AM, Tres Wong-Godfrey
> <tres.wong-godfrey at saniq.com> wrote:
>>
>> As of Rails 2.1 64 bit ints are supported in MySQL migrations. Formerly
>> you needed to use a plugin to get this working in MySQL.
>>
>> Rails 2.1.0 had some problems with the implementation, but in 2.1.1 I
>> believe they have fixed the implementation to work the same as Postgres, so
>> using :limit => 8 gets you bigint in mysql.
>>
>> So something like this, should work under Rails 2.1.1 with no patching or
>> plugins necessary:
>> t.integer :facebook_id, :limit => 8, :null=> false
>>
>>
>>
>> On Nov 11, 2008, at 10:08 AM, Lee Mallabone wrote:
>>
>>> 2008/11/11 Joseph Durden <josephdurden at gmail.com>:
>>>>
>>>> I am new to rails, and was wondering if there would be unknown
>>>> consequences
>>>> for setting the user tables primary key to being the facebook_id of a
>>>> user.
>>>> I have implemented this funcionality, and everything is working fine.
>>>> All
>>>> associations etc. What are the risks if there are any of overridding
>>>> the id
>>>> with facebook_id? Why would I not want to do this?
>>>
>>> I'm doing this at the moment. The biggest thing I was concerned about
>>> was the potential for facebook user IDs to be 64bit numbers. (I can't
>>> remember the official Facebook stance on ID size but I'm pretty sure
>>> they weren't ruling out 64bit IDs). Rails migrations don't seem to
>>> support 64bit values (on mysql at least) out-of-the-box.
>>>
>>> I worked around the issue by patching ActiveRecord. I added a snippet
>>> (attached) to environment.rb based on the following post and all seems
>>> fine to date:
>>> http://snippets.dzone.com/posts/show/4422
>>>
>>> Use column type :int64_pk for your users table and :int64 for any
>>> foreign key columns.
>>>
>>> Lee.
>>>
>>>
>>>
>>> --
>>> Lee Mallabone.
>>> Director, Crossbone Systems Ltd.
>>>
>>> http://www.crossbonesystems.com/
>>> http://www.fonicmonkey.net/
>>> http://CambridgeWebHeads.ning.com/
>>>
>>> <mysql-64bit-monkeypatch.rb>_______________________________________________
>>> Facebooker-talk mailing list
>>> Facebooker-talk at rubyforge.org
>>> http://rubyforge.org/mailman/listinfo/facebooker-talk
>>
>> _______________________________________________
>> Facebooker-talk mailing list
>> Facebooker-talk at rubyforge.org
>> http://rubyforge.org/mailman/listinfo/facebooker-talk
>
>
> _______________________________________________
> Facebooker-talk mailing list
> Facebooker-talk at rubyforge.org
> http://rubyforge.org/mailman/listinfo/facebooker-talk
>
>
--
Lee Mallabone.
Director, Crossbone Systems Ltd.
http://www.crossbonesystems.com/
http://www.fonicmonkey.net/
http://CambridgeWebHeads.ning.com/
More information about the Facebooker-talk
mailing list