我只是将我的应用程序从
mysql迁移到postgres但是当我尝试在特定表中插入记录时,我违反了非空约束错误:
ERROR: null value in column "id" violates not-null constraint DETAIL: Failing row contains (null,1,null,2016-03-09 09:24:12.841891,2012-12-31 23:00:00,f,XYZAssignment,null). ********** Error ********** ERROR: null value in column "id" violates not-null constraint sql state: 23502 Detail: Failing row contains (null,null).
当我尝试使用factory_girl创建记录时:
@assignment = FactoryGirl.create(:assignment)
它构建了这个SQL查询:
INSERT INTO assignments( id,account_id,l_id,viewed_at,accepted_at,declined_at,expires_at,created_at,updated_at,decline_reason,decline_reason_text,promotion,c_checked_at,forwardable,type,f_promo,c_check_successful,c_check_api_result,c_check_human_result) VALUES (null,'2016-03-09 09:24:12.841891','2012-12-31 23:00:00','f','XYZAssignment',null);
这是作业工厂:
FactoryGirl.define do factory :assignment do expires_at 24.hours.from_Now account lead end end
这是表格说明:
CREATE TABLE assignments( id serial NOT NULL,account_id integer NOT NULL,l_id integer NOT NULL,viewed_at timestamp without time zone,accepted_at timestamp without time zone,declined_at timestamp without time zone,expires_at timestamp without time zone,created_at timestamp without time zone,updated_at timestamp without time zone,decline_reason character varying(16),decline_reason_text character varying(256),promotion boolean NOT NULL DEFAULT false,c_checked_at timestamp without time zone,forwardable boolean DEFAULT true,type character varying(64),f_promo boolean,c_check_successful boolean,c_check_api_result character varying(32),c_check_human_result character varying(32),CONSTRAINT assignments_pkey PRIMARY KEY (id) ) WITH ( OIDS=FALSE );
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。