Rya*_*ebo 5 postgresql activerecord ruby-on-rails
我刚刚在我的本地postgres数据库中对pg_restore进行了转储数据库的转储,以使它们排成一行.所有数据都通过了.
现在当我尝试在Rails控制台中查询时,我收到错误.
Artist.count
(0.5ms) SELECT COUNT(*) FROM "artists"
=> 668
Run Code Online (Sandbox Code Playgroud)
**
Artist.last
Artist Load (1.4ms) SELECT "artists".* FROM "artists" ORDER BY "artists"."" DESC LIMIT 1
PG::Error: ERROR: zero-length delimited identifier at or near """"
LINE 1: ...T "artists".* FROM "artists" ORDER BY "artists"."" DESC LI...
^
: SELECT "artists".* FROM "artists" ORDER BY "artists"."" DESC LIMIT 1
ActiveRecord::StatementInvalid: PG::Error: ERROR: zero-length delimited identifier at or near """"
LINE 1: ...T "artists".* FROM "artists" ORDER BY "artists"."" DESC LI...
^
: SELECT "artists".* FROM "artists" ORDER BY "artists"."" DESC LIMIT 1
from /Users/ryanrebo/.rvm/gems/ruby-2.0.0-p481/gems/activerecord-3.2.13/lib/active_record/connection_adapters/postgresql_adapter.rb:1161:in `exec'
Run Code Online (Sandbox Code Playgroud)
我在所有其他模型上得到相同的错误.我也不能用find(id).
有任何想法吗?
发生此错误是因为"艺术家"表没有通过以下方式用于订单的主键:
艺术家负荷(1.4ms)选择"艺术家".*来自"艺术家"ORDER BY"艺术家".""DESC LIMIT 1
通过将以下代码块添加到rails迁移或在数据库中运行alter table命令来添加要修复的主键:
执行<< - SQL ALTER TABLE assets ADD PRIMARY KEY(id); SQL
其中id是"艺术家"的主键.