PG :: StringDataRightTruncation:错误:类型字符变化的值太长(255)

时间:2014-02-12 14:51:44

标签: ruby-on-rails postgresql

宝石文件:

gem "oauth2"
gem "omniauth-gmail"
gem 'omniauth-facebook'
gem "omniauth-google-oauth2"

我是铁轨上的红宝石新手。我成功注册了facebook,但是当我尝试使用gmail注册时,我得到了以下PG错误。

请给我任何建议,我也将地址的数据类型从字符串更改为文本,但没有得到结果。

  
     

ActiveRecord :: StatementInvalid at / users PG :: StringDataRightTruncation:ERROR:value对于类型来说太长   字符变化(255):INSERT INTO“users”(“地址”,“城市”,   “confirmation_sent_at”,“confirmation_token”,“confirmed_at”,   “country”,“created_at”,“current_sign_in_at”,“current_sign_in_ip”,   “email”,“encrypted_pa​​ssword”,“facebookimage”,“image”,   “last_sign_in_at”,“last_sign_in_ip”,“纬度”,“经度”,   “membership”,“提供者”,“remember_created_at”,   “reset_password_sent_at”,“reset_password_token”,“sign_in_count”,   “state”,“uid”,“unconfirmed_email”,“updated_at”,“username”,“zip”)   价值($ 1,$ 2,$ 3,$ 4,$ 5,$ 6,$ 7,$ 8,$ 9,$ 10,$ 11,$ 12,$ 13,$ 14,   $ 15,$ 16,$ 17,$ 18,$ 19,$ 20,$ 21,$ 22,$ 23,$ 24,$ 25,$ 26,$ 27,$ 28,   $ 29)返回“id”应用程序框架所有框架在日志中进行救援   activerecord(3.2.12)   lib / active_record / connection_adapters / abstract_adapter.rb,第285行

     

3 个答案:

答案 0 :(得分:3)

该字段的类型应为:text,而不是迁移文件中的:string

答案 1 :(得分:0)

或者,这是使用heroku命令行中的pg:psql的直接方法。您一定要添加一个解决此问题的迁移文件,以免造成任何差异。

http://www.dchapman.io/posts/changing-column-type-in-postgresql-rails

答案 2 :(得分:0)

这可能是由远程服务器中过时的迁移测试数据库引起的。

尝试:

rake db:migrate db:test:prepare

再次运行迁移。