Ваш сценарий миграции должен был создать столбец id по умолчанию при создании пользовательской таблицы. Значения в этом столбце должны быть уникальными, чтобы вы могли использовать его как уникальный идентификатор для всех пользователей. Если это не отвечает вашим потребностям, вы можете просто добавить еще один столбец в базу данных, а затем установить для этого поля уникальный идентификатор в вашем OmniauthCallbacksController, когда вы создаете пользователей, которых еще нет в базе данных.
Например, в примере facebook на странице devise вы можете изменить метод find_for_facebook_oauth, который вызывается из OmniauthCallbacksController, чтобы он создавал ваше новое поле при создании пользователя.
def self.find_for_facebook_oauth(access_token, signed_in_resource=nil)
data = access_token['extra']['user_hash']
if user = User.find_by_email(data["email"])
user
else # Create an user with a stub password.
# Add code here to create unique identifier for the user
# and make sure your field is passed to the create! method
User.create!(:email => data["email"], :password => Devise.friendly_token[0,20])
end
end